function validateDecimal(number,maxDigits) { eval("var stringvar=/^[-+]?([0-9]*\.[0-9]{0,"+maxDigits+"})|([0-9]+)$/"); return stringvar.test(number); }
我编写了上面的函数来验证十进制数。变量“maxDigits”用于指定小数部分的位数,“number”作为要验证的值。但当我尝试使用数字值后跟一个字符(例如:24y)时,它返回“true”。谁能帮我找出我的错误。
最佳答案
在不进入正则表达式的情况下,我认为代码中的问题是您应该转义特殊字符两次。由于您将其全部放入字符串中,因此字符串解析会转义单个反斜杠。
我认为这应该有效:
eval("var stringvar=/^[-+]?([0-9]*\\.[0-9]{0,"+maxDigits+"})|([0-9]+)$/");
关于javascript - 用于验证十进制数字的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11896274/