函数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/

10-12 00:58