函数validateDecimal(number,maxDigits)
{
eval(“ var stringvar = / ^ [-+]?([0-9] * \。[0-9] {0,” + maxDigits +“})|([0-9] +)$ /”);;
返回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/