[英]Regular Expression to check a value must allow only two digits after decimal point?
我正在研究asp.net Web應用程序項目。
我正在從TextBox接受輸入。 TextBox必須允許一個大於零的數字值,並且十進制后必須有兩位數字。
我正在驗證javascript中的文本框。
請建議我用正則表達式來實現它。
在我的代碼中,它在某些情況下會失敗。
var conversionRate = $.trim($("#ConversionTextBoxID").val());
if (conversionRate == "") {
// alert("Please Enter Conversion Rate.");
modalWin.ShowMessage('Please Enter Conversion Rate.', 200, 400, 'Message');
return false;
}
else if (Number(conversionRate) == 0) {
//alert("Please enter value greater than zero for Conversion Rate.");
modalWin.ShowMessage('Please enter value greater than zero for Conversion Rate.', 200, 400, 'Message');
return false;
}
else if (Number(conversionRate) == 0.00) {
// alert("Please enter value greater than zero for Conversion Rate.");
modalWin.ShowMessage('Please enter value greater than zero for Conversion Rate.', 200, 400, 'Message');
return false;
}
if (Number(document.getElementById('ConversionTextBoxID').value) > 999.99) {
modalWin.ShowMessage('Please Check Current Conversion Rate.It Can Not Exceed 999.99.', 200, 400, 'Message');
// alert("Please Check Current Conversion Rate.It Can Not Exceed 999.99.");
return false;
}
if (Number(document.getElementById('ConversionTextBoxID').value) < 0) {
// alert("Please Check Current Conversion Rate.It Can Not be less than Zero.");
modalWin.ShowMessage('Please Check Current Conversion Rate.It Can Not be less than Zero.', 200, 400, 'Message');
return false;
}
if (document.getElementById('ConversionTextBoxID').value.indexOf(".") == -1) {
//alert("Please enter decimal value for Currency Conversion Rate.");
modalWin.ShowMessage('Please enter decimal value for Currency Conversion Rate.', 200, 400, 'Message');
return false;
}
if (String(Number(document.getElementById('ConversionTextBoxID').value)).indexOf(".") < (String(Number(document.getElementById('ConversionTextBoxID').value)).length - 3)) {
// alert("Conversion Rate can have only two digits after Decimal.");
modalWin.ShowMessage('Conversion Rate must have only two digits after Decimal.', 200, 400, 'Message');
return false;
}
在某些情況下會失敗。 例如:12.0失敗(我不想允許)。 12.1它失敗。
在其他情況下,它可以正常工作。
因此,如果有任何簡單的方法或正則表達式,將非常有幫助。
試試這個(我假設12.00有效,但是12和12.0無效):
function validate(s) {
var n = Number(s)
if (n > 0 && n <= 999.99) {
if (!s.match(/\d{1,3}\.\d{2}/)) {
return console.log("invalid")
}
} else {
return console.log("invalid")
}
console.log("valid")
}
嘗試此操作,但這將允許零,您可能必須為此檢查添加條件
/[0-9]+\.[0-9]{2}([^0-9]|$)/
如果要查找,則(15,15.0無效),但(15.00)有效。 試試吧,
^([1-9] {1,2})(\\。[0-9] {2})$
否則,如果您正在尋找15,15.00有效但15.0無效,請嘗試。
^([1-9] {1,2}){1}(\\。[0-9] {2})?$
工作小提琴鏈接.. http://regex101.com/r/mN1iT5/4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.