2011-06-21 3 views

答えて

3

(?=)は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]; 
+0

javascriptをサポートしています(=?)、エラーが(/ \ = \ +(W)/?。)ご利用 "テスト" .matchです。//ヌル "テスト"。一致(/ \ w +(?= \。)/); teste //うまく動作します –

+2

私はJSが先読みをサポートしていないとは何も言わなかった。 –

+0

私は以下のウェブサイトの例に従っていました。この機能の構文と説明は、Webサイトでは間違っています。 http://www.javascriptkit.com/jsref/regexp.shtml – sandraqu

0

あなただけの次試行し桁の部分を抽出したい場合は...

"ID=2".match(/\d+/)[0]

ORだけ

"ID=2".match(/\d+/)

+0

または単に: "ID = 2" .match(/ \ d + /); –

+0

@The Mask - あまりにも十分だろう.. :) – niksvp

0
if("ID=2".match(new RegExp(/ID\=(\d+)/))) 
    alert("Matched" + RegExp.$1); 
else 
    alert("No Match"); 

はそれを試してみてください!

あなたが使用する必要がString.match()