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 に答える