我有这个字符串:"\W\W\R\"
我想使用正则表达式来生成此字符串:<span>W</span><span>W</span>\R
这是我的代码:
"\W\W\R".replace(/\\W/g, "<span>W</span>");
因为模式“\ W”是一个字符类,所以我试图逃避的任何一个都没有响应。该怎么写?
答案 0 :(得分:1)
尝试RegExp
构造函数new RegExp("(\W)|(R$)", "g")
从match === "W" ? "<span>" + match + "</span>" : "\\" + match
函数中的三元.replace()
返回替换字符串
var str = "\W\W\R" , res;
res = str.replace(new RegExp("(\W)|(R$)", "g"), function(match) {
return match === "W" ? "<span>" + match + "</span>" : "\\" + match
});
console.log(res);
document.write(res);
&#13;
答案 1 :(得分:1)
字符串中的\
用于转义其后的特殊字符,因此您的字符串\W\W\R
将被视为WWR
。
在命令行上运行时
> '\W\W\R'
WWR
双重转义字符串中的斜杠
var str = "\\W\\W\\R".replace(/\\W/g, "<span>W</span>");
console.log(str);
&#13;
答案 2 :(得分:1)
问题不在于正则表达式,它是你的字符串,在字符串\
中是一个转义字符,所以如果你想要\W\W\R
那么你的字符串文字应该是"\\W\\W\\R"
SO
var res = "\\W\\W\\R".replace(/\\W/g, "<span>W</span>");
snippet.log(res)
&#13;
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
&#13;
答案 3 :(得分:0)
只需确保匹配的字符实际上是大写字母&#39; W&#39;将其包裹在方括号[]
中"\W\W\R".replace(/[W]/g, "<span>W</span>");
:)