2016-11-28 9 views
1

"The computer costs $ 2,000"などの文字列に価格が含まれているかどうかをチェックしたいと思います。文字列に価格が含まれていますか?

私は少しmodified this regex私のニーズと私はこのようなルックスを使用しています現在の正規表現に合わせて:

var regexTest = /(?=.)^\$(([1-9][0-9]{0,2}(,[0-9]{3})*)|[0-9]+)?(\.[0-9]{1,2})?$/; 

私はregexTest.test("$2,000");を行う場合は、trueを返します。しかし、もし私がregexTest.test("The computer costs $2,000");のような文字列に追加の文字列を追加すると、falseを返します。

2番目の例でtrueを返すために正規表現コードを変更するにはどうすればよいですか?

答えて

1

^を正規表現で削除してください。この$5.000,00 wordsような価格がtrue

var regexTest = /(?=.)\$(([1-9][0-9]{0,2}(,[0-9]{3})*)|[0-9]+)?(\.[0-9]{1,2})?/; 
 

 
console.log(regexTest.test('computer $5,000.00')); 
 
console.log(regexTest.test('$5,000.00')); 
 
console.log(regexTest.test('$5,000.00 that was computer price')); 
 
console.log(regexTest.test('computer 5,000.00'));

+1

は多分あまりにも障害のシナリオとスニペットを更新返されますので、この1

はまた、私は同様に$を削除することをお勧めしてみてください。 –

+0

が編集されました。感謝@ A.J – RizkiDPrast

+0

@RizkiDPrast私が探していたもの。それは完璧に動作します、ありがとう! –

0

グローバル修飾語が機能するはずです。 /最後の後にgを追加

var regexTest = /(?=.)^\$(([1-9][0-9]{0,2}(,[0-9]{3})*)|[0-9]+)?(\.[0-9]{1,2})?$/g; 

はテスト文字列内のすべてのインスタンスと一致している必要があります。

関連する問題