请帮我写一个JavaScript验证货币/货币字段。

因此,如果您有 :) ,请提供任何正则表达式

另外,对于我所在的地区,在字段中不需要任何货币符号,例如“$”。

仅将小数作为特殊字符。连同数字一起包括在内以进行验证。

最佳答案

您可以使用正则表达式:

var regex  = /^\d+(?:\.\d{0,2})$/;
var numStr = "123.20";
if (regex.test(numStr))
    alert("Number is valid");

如果您不希望严格限制小数位数,则可能会发现使用一元(+)运算符将其强制转换为数字以检查其有效性会更容易:
var numStr = "123.20";
var numNum = +numStr; // gives 123.20

如果数字字符串无效,它将返回NaN(不是数字),您可以轻松进行测试:
var numStr = "ab123c";
var numNum = +numStr;
if (isNaN(numNum))
    alert("numNum is not a number");

当然,它将允许用户添加更多的小数位,但是您可以使用number.toFixed(2)舍入任何多余的舍入到小数点后2位。 parseFloat对输入的要求不那么严格,并且会从字符串中选择它可以找到的第一个数字,只要该字符串以数字开头即可。 parseFloat("123abc")将产生123

关于javascript - 货币验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2227370/

10-13 08:47