javascript - float 正则表达式产生意外结果

标签 javascript regex

我使用这个正则表达式来验证 float :

var reg = /\d+\.?\d+/;

但它正在验证这是真的:

"11.34x"
"11.34abs"
"1a1.34abs"

\d 应该只匹配数字。怎么了?

最佳答案

如果您不锚定正则表达式,它将匹配包含匹配子字符串的字符串。

尝试:

var reg = /^\d+\.?\d+$/;

^ 匹配测试字符串的开头,$ 匹配结尾。因此,该正则表达式将仅匹配仅包含数字和最多一个“.”的字符串。

编辑 - 正如所指出的,您使用 + 量词意味着您的正则表达式需要数字;如果有小数点,则两边都需要数字。也许这就是您想要的,也许不是。

关于javascript - float 正则表达式产生意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14905348/

相关文章:

r - 在数据框中按数字拆分列

javascript - 匹配多行正则表达式 Javascript

mysql - 选择所有 [第一个字母以数字或特殊字符开头]

javascript - 重构 Promise javascript 代码

javascript - 使用 getElementsByClassName 获取直接子元素

javascript - 自动文本区域光标移动

php - 如果可能的话,我将如何从 ajax 调用中设置一个 php 数组?

javascript - 将鼠标悬停在图像上时获取带有文本的黑色叠加层

java.util.Scanner NoSuchElementException 且 LineFeed 终止文件长度为 1025 个字符

ruby - 如何在 Ruby 中使用正则表达式从此字符串 "!!one!! **two** @@three@@"中提取单词