0

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!"))

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

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

4

1 回答 1

0
/\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!"))
于 2016-04-04T02:22:32.120 回答