如何转义 JavaScript 正则表达式替换字符
How to escape JavaScript RegEx replacement characters?
请考虑以下代码:
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_string = "aicId";
var my_pattern = "i";
var my_regex = new RegExp(my_pattern, "gi");
var my_result = my_string.replace(my_regex, "x$$&y");
document.write('<pre>' + JSON.stringify(my_result, 0, 2) + '</pre>');
或者,您可以将函数用作第二个参数而不转义任何内容:
来自 MDN:
可以将函数指定为第二个参数。在这种情况下,将在执行匹配后调用该函数。函数的结果(返回值)将用作替换字符串。
var my_string = "aicId";
var my_pattern = "i";
var my_regex = new RegExp(my_pattern, "gi");
var my_result = my_string.replace(my_regex, function() {
return "x$&y";
});
document.write('<pre>' + JSON.stringify(my_result, 0, 2) + '</pre>');
如果你想返回"ax$&ycx$&yd",这应该可以工作:
var my_result = my_string.replace(my_regex,"x$$'&y");
因为在正则表达式的第一部分中,需要转义"$",因为它是一个表示字符串末尾的特殊正则表达式字符。
正则表达式的第二部分被视为"普通"字符串,其中"$"没有特殊含义。
从这里。
相关文章:
- Javascript 正则表达式 : ^[^/s/]+[a-z]{1,}[0-9]*[-_]*[^/][
- JavaScript正则表达式文本与RegExp对象
- 将javascript正则化为vb
- 将po-box javascript正则表达式转换为c#regex
- 被javascript正则表达式分组卡住了
- 从字符串中提取年份的Javascript正则表达式
- 尝试使用Javascript正则表达式来获取“&"分隔文本,无论它是否's是最后一个值
- JavaScript正则表达式匹配量
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- javascript正则表达式来识别所有特殊字符
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- 查找所有注释的JavaScript正则表达式
- javascript正则表达式验证未按预期工作
- javascript正则表达式,用于匹配带数字和不带数字的字符串
- 模仿负查找以匹配JavaScript正则表达式中没有紧跟特定字符的模式
- JavaScript正则表达式(带_-的字母数字字符)
- 用特定的javascript正则表达式替换每个单词
- 搜索日历事件的Javascript正则表达式
- 如何获取 JavaScript 正则表达式子匹配的位置
- 正则表达式子字符串以JavaScript开始和结束