JavaScript 验证 : regex to validate numbers with comma

标签 javascript regex

如何使用 JavaScript 正则表达式来验证这样的数字?

  1. 1,000
  2. 1,000.00
  3. 1000.00
  4. 1000

我试过了(使用的字符串不匹配):

test('2342342342sdfsdfsdf');

function test(t)
{
    alert(/\d{1,3}(,\d{3})*(\.\d\d)?|\.\d\d/.test(t));
}

但仍然给我真实的感觉。

最佳答案

如果你想测试完整的输入字符串是否匹配一个模式,那么你应该以 ^ 开始你的正则表达式并以 $ 结束。否则,您只是在测试输入字符串是否包含与给定模式匹配的子字符串。

  • ^ 表示“行首”
  • $ 表示“行尾”

在这种情况下,这意味着您必须将正则表达式重写为:

/^(\d{1,3}(,\d{3})*(\.\d\d)?|\.\d\d)$/

如果您要省略额外的括号,否则 "|" 的优先级将低于 ^$,因此请输入"1,234.56abc""abc.12" 仍然有效。

关于JavaScript 验证 : regex to validate numbers with comma,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5456023/

相关文章:

javascript - 追加后矩形不可视化

javascript - 有没有办法使用包含变量名称的字符串来访问 javascript 变量?

javascript - 没有收到通过 AJAX POST 发送到 PHP 的值

javascript - 将 API 数据保存在 AsyncStorage 中

javascript - 在鼠标悬停 <li> 时显示 Div 但如果鼠标悬停在另一个 li 上则隐藏 div 并显示正确

java - 字符串替换正则表达式仅在 [] 之外使用标记

java - 正则表达式至少具有两个选项之一,但按顺序

regex - 如何使用Python获取包含某种“href”格式的所有“a”标签?

Python - 删除非字母数字字符但保留空格和西类牙语/葡萄牙语字符

java - 正则表达式匹配带空格但不带空格的数字