javascript - 用于验证十进制数字的正则表达式

标签 javascript regex

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/

相关文章:

python - 在 python 中匹配来自 WhatsApp 日志的消息

javascript - 单击时选择 Div 标记中的所有文本(即使用类)

javascript - div 元素相对于窗口固定,但仅限于其父级

javascript - 通过使用 Javascript 反转 URL 来隐藏机器人的 URL

javascript - 遍历嵌套的 Javascript 对象

javascript - 如何创建匹配给定字符后一行中所有内容的正则表达式?

ruby - 如何使用正则表达式从 HTML 中提取链接?

python - re.sub 带括号,删除日文 ruby 字符

javascript - Angular ng-repeat - 如何连接或组合来自不同数组的数据

c# - 如何从句子中所有数字的每个单词中获取第一个字符?