2009-06-22 7 views
2

正規表現
^([+/-]?([0-9] +?)?)([0-9] *。[0-9] +))$
私は、テストデータが "1A" と "A1" である二つの方法質問JavaのRegExpについて

var _regex = "^([+/-]?([0-9]+(\.)?)|([0-9]*\.[0-9]+))$"; 
var _regexFloat = new RegExp(_regex); 



var _regexFloat = /^([+/-]?([0-9]+(\.)?)|([0-9]*\.[0-9]+))$/ ; 

ことによってそれを作成します。
2番目の方法では正常に動作します。
ただし、最初の方法ではtrueを返します。

私は何かが間違っていると私に示唆することができます。

ありがとうございました。

環境:

のWindows Server 2003
IE 6

+0

こんにちは、この正規表現は何のためにあるのですか?文字列に浮動小数点が含まれているかどうかを知ることはできますか? –

答えて

5

私はあなたが(最初のバージョンで)文字列でこれらのバックスラッシュをエスケープする必要があります信じています。

これを試してみてください:

var _regex = "^([+/-]?([0-9]+(\\.)?)|([0-9]*\\.[0-9]+))$"; 
var _regexFloat = new RegExp(_regex); 
+2

もちろん、これは正確に2番目の構文が存在する理由です。エスケープすると読みにくくなります。 –

+0

私は同意する、私は2番目のバージョンを使用します。 –