2011-08-01 8 views
0

好奇心が強い。どのような違いがありますか?動的正規表現の書式設定

var string = "Nullam|lingula|in"; 
var pattern = new RegExp (string, "ig");  
var a=text.replace(pattern ,'`<b>$1</b>`'); 

var a=text.replace(/(Nullam|ligula|in)/ig,'`<b>$1</b>`'); 

これは、同じ結果を与えなければならないが、それはしていません。何かご意見は?

は、あなたがあなたの後の文で括弧を逃しているあなたに

+0

です両方の結果になります。実際には、最初の例で '$ 0'を使用した場合にも得られます。 –

答えて

3

ありがとう、そう何のキャプチャはありません。そして、フラグはあなたの第二の例では、 `の代わりに` $ 1 'の$ 0`を書いた場合は、あなたが同じを取得したいgi、ないig(私はこれは何の違いを行う場合わからないが)

var reString = "(Nullam|lingula|in)"; var pattern = new RegExp (reString, "gi"); 
+0

たとえば、最初の手法で単語の1つが見つかった場合は、太字にして、単語を置き換えません。一方、2番目の単語が単語の1つを見つけたら、それは太字になり、文字通り単語を "$ 1"に置き換えます。それが私の実験から出てくるものです。私が達成しようとしているのは、文字通り単語を置き換えずに、単に単語を太字にすることです。これは可能ですか? (動的キーワードを使用) – Nebby

+0

はい、キャプチャグループを作成する括弧がないためです。 – Mrchief

+0

あなたの提案に従ってください。私は試して、それを働かせることはできません。ここに私の実験があります: 最初のテクニックhttp://jsfiddle.net/oceog/q8S7E/ そして 2番目のテクニック:http://jsfiddle.net/UyWTf/1/ – Nebby