私のテストでは、パターンがある正規表現はnullを返します。どのようにして2を返すのですか?正規表現の前にexecパターンが返るヌル
s = new RegExp(/(?=ID\=)(\d+)/).exec("ID=2");
私のテストでは、パターンがある正規表現はnullを返します。どのようにして2を返すのですか?正規表現の前にexecパターンが返るヌル
s = new RegExp(/(?=ID\=)(\d+)/).exec("ID=2");
(?=)
はLookaheadアサーションです。 JavaScriptがサポートしていないlookbehindを使用したいと思うでしょう。これは、しかし、うまく動作します:
s = /ID=(\d+)/.exec('ID=2')[1];
// or
s = new RegExp('ID=(\\d+)').exec('ID=2')[1];
だけで意味がありませんRegExp
コンストラクタ—にリテラル正規表現を渡さないでください。
本当に、なぜあなたはちょうど=
に分割しないのですか?
s = 'ID=2'.split('=')[1];
あなただけの次試行し桁の部分を抽出したい場合は...
"ID=2".match(/\d+/)[0]
ORだけ
"ID=2".match(/\d+/)
または単に: "ID = 2" .match(/ \ d + /); –
@The Mask - あまりにも十分だろう.. :) – niksvp
if("ID=2".match(new RegExp(/ID\=(\d+)/)))
alert("Matched" + RegExp.$1);
else
alert("No Match");
はそれを試してみてください!
あなたが使用する必要がString.match()
javascriptをサポートしています(=?)、エラーが(/ \ = \ +(W)/?。)ご利用 "テスト" .matchです。//ヌル "テスト"。一致(/ \ w +(?= \。)/); teste //うまく動作します –
私はJSが先読みをサポートしていないとは何も言わなかった。 –
私は以下のウェブサイトの例に従っていました。この機能の構文と説明は、Webサイトでは間違っています。 http://www.javascriptkit.com/jsref/regexp.shtml – sandraqu