我想用ASP.Net RegExp驗證器編寫一個正則表達式,它可以確保一個字段僅包含數字和小數值,並且至少包含一個字符。ASP.Net RegularExpression Validator - 解析bug
^[0-9]{1,40}(\.[0-9]{1,2})?$
本質上:[0-9]{1,40}
- 意味着至少有一到四十個數字字符。
ASP.Net正則表達式驗證器不會觸發空字段 - 其中至少沒有一個字符。
解決方法:使用與JavaScript中的正則表達式檢查自定義驗證:
function validateMinTrans(sender, args) {
var error = true;
var txtMinTrans = document.getElementById('TxtMinTrans');
var regexp = new RegExp("^[0-9]{1,40}(\.[0-9]{1,2})?$");
if (txtMinTrans.value.match(regexp)) {
alert("good");
}
else {
alert("bad");
}
if (error)
args.IsValid = false;
else
args.IsValid = true;
}
因此,我甚至不具備檢查txtMinTrans.length == 0
。想知道是否有其他人遇到過這種情況。
是的,這就是我過去不得不做的事情......但只是概述了同一表達在兩者之間表現不同的方式上的差異。 – ElHaix 2010-01-29 00:38:42
@ElHaix所以......真正的問題是什麼? – 2010-01-29 01:12:50
好吧,基本上我指出了正則表達式在RequiredFieldValidator和自定義JS正則表達式驗證之間的區別。 – ElHaix 2010-03-12 17:52:32