如何转义JavaScript正则表达式替换字符?
考虑以下代码:如何转义JavaScript正则表达式替换字符?,javascript,regex,character-replacement,Javascript,Regex,Character Replacement,考虑以下代码: var my_string = "aicId"; var my_pattern = "i"; var my_regex = new RegExp(my_pattern,"gi"); var my_result = my_string.replace(my_regex,"x$&y"); alert (my_result); 这将返回: axiycxIyd 现在,如果我想让它返回这个: ax$&ycx$&yd 我需要做什么 我试图这样逃离他们: var
var my_string = "aicId";
var my_pattern = "i";
var my_regex = new RegExp(my_pattern,"gi");
var my_result = my_string.replace(my_regex,"x$&y");
alert (my_result);
这将返回:
axiycxIyd
现在,如果我想让它返回这个:
ax$&ycx$&yd
我需要做什么
我试图这样逃离他们:
var my_result = my_string.replace(my_regex,"x\$\&y");
或者这个:
var my_result = my_string.replace(my_regex,"x\\$&y");
var my_result = my_string.replace(my_regex,"x$&y");
var dollar = '$';
var amper = '&';
var my_result = my_string.replace(my_regex,"x" + dollar.charCodeAt(0) + amper.charCodeAt(0) + "y");
或者这个:
var my_result = my_string.replace(my_regex,"x\\$&y");
var my_result = my_string.replace(my_regex,"x$&y");
var dollar = '$';
var amper = '&';
var my_result = my_string.replace(my_regex,"x" + dollar.charCodeAt(0) + amper.charCodeAt(0) + "y");
或者这个:
var my_result = my_string.replace(my_regex,"x\\$&y");
var my_result = my_string.replace(my_regex,"x$&y");
var dollar = '$';
var amper = '&';
var my_result = my_string.replace(my_regex,"x" + dollar.charCodeAt(0) + amper.charCodeAt(0) + "y");
我还可以尝试什么?对于插入
$
您需要$
,在您的情况下$&
是一种特殊的替换模式,如果您先通过$
转义$
,它将起作用
var my_string=“aicId”;
var my_pattern=“i”;
var my_regex=新的RegExp(my_模式,“gi”);
var my_result=my_string.replace(my_regex,“x$$&y”);
document.write(“”+JSON.stringify(my_result,0,2)+“”)代码>如果要返回“ax$&ycx$&yd”,应该可以:
因为在正则表达式的第一部分,“$”需要转义,因为它是一个表示字符串结尾的特殊正则表达式字符
正则表达式的第二部分被视为“普通”字符串,其中“$”没有特殊含义
来自。我还可以尝试什么?我不知道,阅读文档或者搜索文档怎么样?谢谢。你不必粗鲁。我花了整整两个小时阅读文档和搜索web,包括SO。有趣的是,你没有时间帮忙,但有时间。。。谢天谢地,其他人更慷慨,所以与慷慨无关。如果你想要一个帮助论坛,人们可以慷慨地帮助那些懒得做研究或阅读文档的人,那就去别处看看吧。有趣的、经过充分研究的问题也是如此,这些问题的答案构成了关于编程的有用知识体系。如果你真的花了两个小时来研究这个问题,那么你真的需要加强你的研究技能,即使只是为了你将来作为一名编程专业人士的发展。您的问题的答案就在String#replace
MDN页面上,靠近顶部,清晰可见。谢谢。它工作得很好。你们为什么不把问题标记为重复的,但从另一个解决方案中选择答案呢?@noobha!说得好。我是新来的:)