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

Character replacement Javascript擦除空间中的正则表达式,character-replacement,Character Replacement,JAVASCRIPT正则表达式 此代码搜索单引号,并将其替换为双引号。它不会替换作为单词一部分的单个引号(即不要) 结果--->我和一只猫在一个蓝色的房子里,我不在乎 请注意,如果双引号取代单引号,则没有空格。为什么在引用之前和之后空间都消失了?谢谢 /\W'|'\W/gi 将任何非单词字符后跟一个单引号(\W')或()任何单引号后跟一个非单词字符('\W)替换为不带空格的双引号 空格算作非单词字符,因此基本上是将空格和单引号替换为不带空格的双引号 以下是您的问题的解决方案: function

JAVASCRIPT正则表达式

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

结果--->我和一只猫在一个蓝色的房子里,我不在乎

请注意,如果双引号取代单引号,则没有空格。为什么在引用之前和之后空间都消失了?谢谢

/\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修饰符,因为它对于这个特殊的参数是不必要的。太棒了!我忘了空格被算作非单词字符,这让人恼火。。。
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!"))