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!"))
结果--->我在一个有猫的蓝色房子里,而且我不在乎!
请注意,双引号替换单引号没有空格。为什么这个空间在这个报价之前和之后都消失了?感谢
答案 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!"))