JQuery関数の通貨正規表現のヘルプが必要です。
有効:
$1,530,602.24
1,530,602.24
無効:
$1,666.24$
,1,666,88,
1.6.66,6
.1555.
/^\$?[0-9][0-9,]*[0-9]\.?[0-9]{0,2}$/i
;を試しました。 1,6,999
と一致する以外は問題なく動作します。
// Requires a decimal and commas
^\$?(([1-9]\d{0,2}(,\d{3})*)|0)?\.\d{1,2}$
// Allows a decimal, requires commas
(?=.*\d)^\$?(([1-9]\d{0,2}(,\d{3})*)|0)?(\.\d{1,2})?$
// Decimal and commas optional
(?=.*?\d)^\$?(([1-9]\d{0,2}(,\d{3})*)|\d+)?(\.\d{1,2})?$
// Decimals required, commas optional
^\$?(([1-9]\d{0,2}(,\d{3})*)|0)?\.\d{1,2}$
// *Requires/allows X here also implies "used correctly"
(?=.*\d)
^\$?
-?
を続けて、負の数を許可します[1-9]\d{0,2}
(\d{1,3})
ですが、「0,123」を許可します|0
(,\d{3})*
?
の前にある\.
を削除します。\.\d{1,2}
または(\.\d{1,2})?
$
(エスケープなし)で終了し、有効な番号($ 1,000.00bなど)の後に何もないことを確認します正規表現を使用するには、文字列のmatch
メソッドを使用し、2つのスラッシュの間に正規表現を入れます。
// The return will either be your match or null if not found
yourNumber.match(/(?=.)^\$?(([1-9][0-9]{0,2}(,[0-9]{3})*)|0)?(\.[0-9]{1,2})?$/);
// For just a true/false response
!!yourNumber.match(/(?=.)^\$?(([1-9][0-9]{0,2}(,[0-9]{3})*)|0)?(\.[0-9]{1,2})?$/);
var tests = [
"$1,530,602.24", "1,530,602.24", "$1,666.24$", ",1,666,88,", "1.6.66,6", ".1555."
];
var regex = /(?=.*\d)^\$?(([1-9]\d{0,2}(,\d{3})*)|0)?(\.\d{1,2})?$/;
for (i = 0; i < tests.length; i++) {
console.log(tests[i] + ' // ' + regex.test(tests[i]));
document.write(tests[i] + ' // ' + regex.test(tests[i]) + '<br/>');
}