我需要检查一个值是否是数字并且可选地包含逗号。
我试过了
var input=3433;
var pattern=/^[1-9]\d{0,2}(\.\d{3})*(,\d+)?$/;
pattern.test(input);
但它总是给我错误;
我不想使用 $.isNumeric
因为它不检查逗号。
最佳答案
假设您使用逗号作为千位分隔符,最简单的方法是在转换时删除逗号:
var num = +str.replace(/,/g, '');
if (!isNaN(num)) {
// It's a valid number
}
如果您的语言环境使用 .
作为千位分隔符,使用 ,
作为小数点(正如您的正则表达式似乎建议的那样),因为 JavaScript 总是以相反的方式使用它们,我们首先要在字符串中更改更多内容:
var num = +str.replace(/\./g, '').replace(/,/g, ".");
if (!isNaN(num)) {
// It's a valid number
}
关于javascript - 使用可选逗号检查数值 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30708956/