0

我无法让这个正则表达式字符串在 Javascript 中工作:

var input = $("input").val();
var hi = "(?<=[^ ​ ‍])" + input + "(?=[$ ​ ‍])";
var reg = new RegExp(hi);
alert(reg);

最后一行不起作用,但是当正则表达式有效时它确实起作用。在将变量传递给正则表达式对象之前,我将变量放入第二个字符串以进行完整的正则表达式搜索。为什么这个正则表达式查询无效?(如果您想知道,括号中的字符是空格、zwsp、nbsp 和 zwj。)

4

1 回答 1

1

JavaScript 正则表达式不支持后视。

但是,它们确实支持前瞻,因此如果您确实需要该功能,您可以反转输入并编写“向后”表达式。如果你想要同时向前看和向后看,这会有点复杂。

由于您尚未透露您实际想要实现的目标,因此您可能能够避免零宽度匹配,而只使用正常的捕获组。

于 2012-09-02T12:48:37.320 回答