javascript - 为什么包含 $(从字符串构建)的正则表达式不起作用?

标签 javascript regex

这有效:

var r="xS";
var regex = new RegExp(r); // Anchor at the end
var s="axS";
s = s.replace( regex, "Z" );
// Now, s is "aZ"

但这并不

var r="x$";
var regex = new RegExp(r); // Anchor at the end
var s="ax$";
s = s.replace( regex, "Z" );
// Now, s is STILL "ax$". NOT "aZ".

无论“$”位于字符串 r 中的哪个位置,这都不起作用 - 例如,即使它不在末尾。

最佳答案

如果你想在字符串中查找$,你需要对其进行转义。 $ 是正则表达式中的特殊字符,意思是“字符串结尾”。

var r="x\$";
var regex = new RegExp( r + "$" ); // Anchor at the end

关于javascript - 为什么包含 $(从字符串构建)的正则表达式不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9297112/

相关文章:

javascript - 如何使 html5 文本字段显示数字键盘?

javascript - 在多个位置循环显示一个 Sprite 或多个重复图像

javascript - 格式 ###.## 的非负和非零正则表达式

java - 如何仅对一个命名的捕获组执行 Regex 替换?

javascript - 正则表达式:从 URL 中提取 GET 变量

java - 用于限制末尾 _ 的正则表达式

javascript - 检查 JavaScript 对象中是否存在键?

javascript - Azure事件中心,仅在处理先前的事件后才接收事件?

javascript - 在顺序很重要的 jQuery 中处理多次单击事件

javascript - 如何匹配不同场景中特殊字符之间的文本