0

我只需要在点后输入两位数。例如 23.34 1.22 .23

这是示例代码

<input type="text" id="amount" onkeypress="return isNumberKey(this);"> 

function isNumberKey(evt) 
{ 
    var charCode = (evt.which) ? evt.which : event.keyCode; 
    return (charCode<=31 ||  charCode==46 || (charCode>=48 && charCode<=57)); 
} 

function validCurrency(amt) 
{ 
    return amt.match(/^\d*(.\d{0,2})?$/); 
} 
4

2 回答 2

3

您可以尝试以下正则表达式:

/^\d*(?:\.\d{0,2})?$/

您犯的主要错误是没有用反斜杠转义点。点将接受任何字符。用反斜杠转义的点会寻找一个点,而不是任何字符。

于 2013-04-08T13:08:40.657 回答
0

你可以使用这样的正则表达式:

/.*\.\d\d$/

它将匹配:

anything                .*
followed by a dot       \.
followed by two digits  \d\d
anchored to the end     $

这是您的功能:

function validCurrency(amt) 
{ 
    return amt.match(//.*\.\d\d/$/); 
}
于 2013-04-08T13:07:20.650 回答