Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何转义JavaScript正则表达式替换字符?_Javascript_Regex_Character Replacement - Fatal编程技术网

如何转义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!说得好。我是新来的:)