0

この正規表現文字列を Javascript で動作させることができません:

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

最後の行は機能していませんが、正規表現が有効な場合は機能します。完全な正規表現検索のために変数を 2 番目の文字列に入れてから、その文字列を正規表現オブジェクトに渡します。この正規表現クエリが有効でないのはなぜですか? (ご参考までに、括弧内の文字はスペース、zwsp、nbsp、および zwj です。)

4

1 に答える 1

1

JavaScriptの正規表現は、後読みをサポートしていません。

ただし、これらは先読みをサポートしているため、本当に機能が必要な場合は、入力を逆にして式を「逆方向」に書くことができます。先読みと後読みの両方を同時に行う場合、これは少し複雑になります。

実際に達成しようとしていることを明らかにしていないため、ゼロ幅の一致を回避して、通常のキャプチャグループを使用できる場合があります。

于 2012-09-02T12:48:37.320 に答える