0

次のようなテキストを検出しようとします。E(id,x,y);

コードは次のとおりです。

var patt1= /\bE\[[\w]+,[\d]+,[\d]+\]\;\b/i;

document.write(patt1.test("E[id,1,2];"));

結果は次のとおりです。false

しかし、私が変わるとき

/\bE\[[\w]+,[\d]+,[\d]+\]\;\b/i;

/\bE\[[\w]+,[\d]+,[\d]+\]\;/i;

結果は次のとおりtrueです。しかし、それも許しE[id,1,2];moretextました。

4

2 に答える 2

2

おー!設立しました。\bは「文字列の開始と終了を検出」しません。単語境界に一致します。^ は文字列の開始、$ は文字列の終了です。

そこで、「/\bE[[\w]+,[\d]+,[\d]+]\;\b/i;」を変更します。「/^E[[\w]+,[\d]+,[\d]+]\;$/i;」に 正しいレギュラーのために。感謝

于 2013-06-13T09:09:01.153 に答える
1

http://www.regexplanet.com/advanced/javascript/index.htmlは、正規表現を試すための優れたツールです。結果は正しいのに、なぜあなたが結果に驚いているのかわかりません。

于 2013-06-13T09:07:17.660 に答える