【问题标题】:Regular Expressions in Javascript erasing spacesJavascript擦除空格中的正则表达式
【发布时间】:2016-07-23 11:02:33
【问题描述】:

JAVASCRIPT 正则表达式

此代码搜索单引号并将其替换为双引号。它不会替换作为单词一部分的单引号(即不要)

function testRegExp(str)
{
    var matchedStr = str.replace(/\W'|'\W/gi, '"');
    return matchedStr;
}
console.log(testRegExp("I'm in a 'blue house with a cat' and I don't care!"))

结果 --->我在“蓝房子里有一只猫”,我不在乎!

请注意,双引号替换单引号时没有空格。为什么这段引用前后的空格消失了?谢谢

【问题讨论】:

    标签: character-replacement


    【解决方案1】:
    /\W'|'\W/gi
    

    您将任何非单词字符后跟单引号 (\W') 或 (|) 任何单引号后跟非单词字符 ('\W) 替换为不带任何空格的双引号。

    空格算作非单词字符,因此您基本上是将空格和单引号替换为不带空格的双引号。

    这里是您的问题的解决方案:

    function testRegExp(str)
    {
        var matchedStr = str.replace(/\W'/g, ' "').replace(/'\W/g, '" ');
        return matchedStr;
    }
    
    console.log(testRegExp("I'm in a 'blue house with a cat' and I don't care!"))
    

    【讨论】:

    • 我省略了 i 修饰符,因为对于这个特定的参数来说它是不必要的。
    • 太棒了!我忘了空格被算作非单词字符,这很烦人......
    猜你喜欢
    • 2011-11-01
    • 2012-07-27
    • 2012-11-15
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 2018-06-11
    • 1970-01-01
    • 2011-08-10
    相关资源
    最近更新 更多