我想在我的正则表达式中转义:
和white space
。我试过了:
var re = new RegExp(':| ', 'g');
var result = $(this).attr("id").replace(re, '\\${1}');
然而它并不起作用。这就是我想要做的事情:
Jack Kerouac => Jack\\ Kerouac
Albert:Camus => Albert\\:Camus
我该怎么做?
答案 0 :(得分:1)
由于\\\\
生成单斜杠($&
to get the match within the string),因此大括号不需要使用one slash is for escaping 并使用\\
进行双斜杠。< / p>
.replace(re, '\\$&');
var str = `Jack Kerouac
Albert:Camus`;
var re = new RegExp(':| ', 'g');
console.log(str.replace(re, '\\$&'));
&#13;
答案 1 :(得分:1)
您可以直接使用模式而不是使用RegExp对象进行实例化。
还\\
- &gt;生成一个\
(转义),添加\\\\
var re = /\:|\s/g;
var val1="fname lname";
var val2="fname:lname";
console.log(val1.replace(re,'\\\\$&'));
console.log(val2.replace(re,'\\\\$&'));
&#13;
答案 2 :(得分:1)