【问题标题】:replace single quote in middle of string using regex使用正则表达式替换字符串中间的单引号
【发布时间】:2017-12-05 22:07:49
【问题描述】:

有一个字符串:

stringName= "'john's example'"

需要做一个string.replace 来删除字符串中间的单引号,而不是第一个和最后一个否则会破坏我的javascript

已尝试stringName.replace("/.'./","") 仅替换字符串中间的单引号但不起作用

非常感谢您的帮助! :)

【问题讨论】:

    标签: javascript .net regex string


    【解决方案1】:

    使用(^'|'$)|'作为匹配正则表达式:

    stringName = "'john's e'xam'ple'";
    console.log(
      stringName.replace(/(^'|'$)|'/g, '$1')
    );

    【讨论】:

    • 感谢您的回答! :) 快速的问题,我在 .net 中执行此操作,字符串仅用 1 个单引号固定,并且您将引号加倍了.. 有什么办法解决这个问题吗?只需用空格替换 1 个单引号
    • 嗨,我没听明白。请详细说明问题。
    • 嗨,对不起,我在 .net 中这样做所以我的字符串是:dim example as string = "'john's example'" Dim regex As String = example.Replace("(^'|'$ )|'", "") Response.Write(regex) 这不起作用吗?字符串在中间固定为一个单引号,不能更改非常感谢您的帮助
    【解决方案2】:

    第一件事是你没有进行正则表达式替换,你正在替换一个看起来像/.'./ 的字符串(因为第一个参数中的")。其次,你正在做的正则表达式只会寻找一个字符(.),然后是一个单引号,然后是另一个字符。你可能想要做的是stringName.replace(/(.+)'(.+)/, "$1$2")

    【讨论】:

    • 我会说使用 revo 的答案来解决这个问题
    【解决方案3】:

    在剥离第一个和最后一个字符后使用splitjoin

    var f1 = (str) => str.charAt(0) + str.split("'").join("") + str.slice(-1);
    
    f1( "'john's exa''mp'le'" ); //'johns example'
    

    【讨论】:

    • "'john's exa''mp'le'" 怎么样?
    • @revo 没想到,现在修好了。感谢您指出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 2013-06-30
    • 2012-11-24
    • 2018-09-29
    • 1970-01-01
    相关资源
    最近更新 更多