我需要一個正則表達式來驗證貨幣。允許的值爲:用於驗證貨幣的PHP正則表達式
1209
1889.0
578247.00
75646.50
But not 44565.12
逗號後面的第二個數字必須爲0.可用貨幣範圍爲0.1-9999999.9。 感謝您的幫助。
我需要一個正則表達式來驗證貨幣。允許的值爲:用於驗證貨幣的PHP正則表達式
1209
1889.0
578247.00
75646.50
But not 44565.12
逗號後面的第二個數字必須爲0.可用貨幣範圍爲0.1-9999999.9。 感謝您的幫助。
使用此圖案:([1-9]\d{,6}|0)(\.\d0?)?
使用此圖案1234.2將被允許使用。它可以嗎? 我編輯了模式,看看。
如果點之前有其他數字,則第一個數字不能爲0。所以編號必須以非零數字開頭,最多可以有6位數字,在點之前或者在點之前只有零點(本部分爲([1-9]\d{,6}|0)
)。 \d0?
表示一位數字,其後可能爲零。 \.
只是一個點。
是的。沒關係 )。那麼{,7}呢?我不應該用{1,7}來代替它嗎? – 2012-03-22 06:41:27
ha chishta))hesa kpoxem – shift66 2012-03-22 06:47:32
4ei spasum vor stex el hayi khandipem :) – 2012-03-22 06:49:14
正如其他人所建議的正則表達式不是處理數字的最佳方式。
如果需要的話你可以到下面的代碼中添加額外的簡單範圍檢查,它會比試圖做到這一點與正則表達式
<?php
$a = array(
1209,
1889.0,
578247.00,
75646.50,
44565.12
);
foreach ($a as $b) {
echo "$b - ";
echo ($b*100 % 50) == 0 ? 'PASS' : 'FAIL';
echo PHP_EOL;
}
因此,讓我看看,如果我有這個權利相當快。你想讓其他人爲你寫代碼嗎?你研究和學習的部分在哪裏,以避免每當你需要時運行到正則表達式? SO!==免費正則表達式 – rdlowrey 2012-03-22 06:26:21
@rdlowrey他不需要別人來寫他的代碼,他只需要一個模式。就是這樣。 'SO!== Free Regex'這個我同意)) – shift66 2012-03-22 06:28:10
我剛開始學習正則表達式。我可以理解模式的含義,但我現在還不能寫出自己的模式。而學習東西的最佳方式是提問問題的人誰會發現答案:) – 2012-03-22 06:45:17