new RegExp('^\\d+[.]?([0,2,5,7]?[0,5])?$').test(236.70)
なぜこのコードは123.20と123.70で動作しないのですか?それは成功し、次の入力をテストするのに対し:正規表現が正しく一致しない
123.00, 123.05, 123.25, 123.50, 123.55, 123.75
new RegExp('^\\d+[.]?([0,2,5,7]?[0,5])?$').test(236.70)
なぜこのコードは123.20と123.70で動作しないのですか?それは成功し、次の入力をテストするのに対し:正規表現が正しく一致しない
123.00, 123.05, 123.25, 123.50, 123.55, 123.75
をあなたは値236.70
を渡していると、おそらくJavaScriptが236.70 == 236.7
が最後0
ストリッピングされます。その後、正規表現の最後の部分と一致しません。一致する部分は[0,5]
です。
代わりに、末尾に0
を残すように文字列にキャストします。
ありがとう@fedorqui –
正規表現にはいくつかの構文エラーがあります。小数と一致する部分では、括弧の外側に?
があります(おそらく)内部にある必要があり、一致させようとしていないにもかかわらず文字クラスに,
があります。
文字クラス([]
)に一致させる個の個別の文字を入力する必要があります。 -
(例:[0-9]
)を使用して、の範囲の文字を取得することもできます。
new RegExp('^\\d+[.]?([0257]?[05]?)$').test(236.70)
ありがとうございました@Rocket Hazmat –
新しいRegExp( '^([5-9 (00.50) VM37068:1 Uncaught SyntaxError:missing)引数リストの後に (1)[1-9] [0-9])[[。 なぜこのエラーが発生しますか? –
@vikkyDevil: '00.50'は有効な数字ではありません。 '0.50'、' 0.5'あるいは単に '.5'を試してみてください。 –
は、文字列の代わりに番号を渡すようにしてください:) –
あなたはカンマを一致させるつもりでない限り、あなたは文字クラスにコンマを置くべきではありません。正規表現のリテラルも優先されるべきです。 @/@ \ n \ + + \ {0373}}} $/' – 4castle
ありがとう@ 4キャスル、これは助けた –