2

StackOverflow 上的早期问题讨论了 JavaScript 正则表达式的转义,例如:

建议的实现如下:

RegExp.quote = function(str) {
     return str.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
};

鉴于两种语言中的正则表达式并不相同,是否有人知道正确转义用于 Java 正则表达式的字符串的 JavaScript 方法?

4

1 回答 1

2

根本没有必要逃避。这些问题是关于在源语言中将正则表达式构造为字符串时需要做什么。由于您正在从输入字段中读取字符串,因此无需担心解释层。

只需将字符串发送到服务器,就会发现它是否是有效的正则表达式。

编辑——虽然我想不出来,但真正要担心的可能是可以通过这种途径进行的任何类型的“注入”攻击。在我看来,如果您只是将正则表达式传递给Pattern.compile()没有任何可以利用的副作用渠道。

于 2012-12-28T21:49:44.567 回答