2012-03-07 7 views
1

以下のスクリプトはnullを返しています。私はjavascriptパターン内の角括弧付きのRegEx

私のアプリケーションで
<script type="text/javascript"> 
var str="0000CentralGasEform2,0000CentralGasEformNew,spot_Northeast(300)_comment"; 
var patt1=/\bspot_Northeast(300)_comment/g; 
document.write(str.match(patt1)); 
</script> 

は、str内の値は、クッキーから取得されたテキストspot_Northeast(300)_commentとpatt1内の値であるため、STRとpatt1に丸括弧を削除する場合は正常に戻っています開かれたウィンドウに基づく動的

regExp = new RegExp('\\b'+FormOpen+'\\b', 'g'); 

ここでFormOpenは動的です。その後、私はクッキー内のマッチを置き換えます。

var temp=CookieList.replace(regExp,""); 

RegEXに()がハードコードではなく通常のテキストであると伝える方法はありますか?

答えて

3
は文脈でそれらに

var patt1=/\bspot_Northeast\(300\)_comment/g;

()に予約されている文字をエスケープ

(。*)例えば、あなたはプロセスを通じて、通常のテキストとしてそれらを治療するための正規表現エンジンを指示する必要があり

をエスケープと呼ばれます
+0

ありがとう。私のアプリケーションでは、strの値はクッキーから取られ、patt1の値は開いたウィンドウに基づいて動的になります。regExp = new RegExp( '\\ b' + FormOpen + '\\ b'、 'g'); FormOpenは動的です。その後、私はクッキー内のマッチを置き換えます var temp = CookieList.replace(regExp、 ""); ()はハードコーディングではなく通常のテキストであるとRegExに伝える方法はありますか? – Saravanan

+0

Cookieは信頼されていないので、評価されたものではその値を使用しないでください。私はおそらくこの例ではほとんど問題ではないが、私はそれが注目に値すると思います。たぶん、それは関係なく、彼らは自分自身に影響を与えるだけなので、私はそれがちょうど* i *のアプローチではないと思いますか? –

0
は括弧をエスケープ

var patt1=/\bspot_Northeast\(300\)_comment/g; 
0

あなたは丸括弧をエスケープする必要があります彼らは具体を持っているように「\」文字をエスケープあなたのreg exのように見えるでしょう。

var patt1=/\bspot_Northeast\(300\)_comment/