Javascript擦除空间中的正则表达式

时间:2016-04-04 02:09:36

标签: character-replacement

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

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

请注意,双引号替换单引号没有空格。为什么这个空间在这个报价之前和之后都消失了?感谢

1 个答案:

答案 0 :(得分: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!"))