gpt4 book ai didi

javascript - 我怎样才能简单地使用这个数字格式验证正则表达式?

转载 作者:行者123 更新时间:2023-11-29 20:03:11 28 4
gpt4 key购买 nike

所以,我有这个 if 语句:
if (String(val).search(/^((\d+(((\,\d{3,})+)?)(\.\d+)?)|(\.\d+)) $/) !== -1)

上面写着(据我所知):
该字符串必须至少以一位数字或 ..
开头如果字符串以数字开头,则可以选择在字符串中使用逗号,只要逗号后跟至少三个数字即可。如果字符串中有 .,则它后面必须至少跟一个数字。
只能有一个.

所以,像这样的字符串:

5
5.00
5000
5,000
5000.00
5,000.00

都会返回true

但包含除 0-9 , . 之外的任何内容或格式错误的字符串将返回 false。所以像这样的字符串:

5,00
5,00.00
5.00.00
a5

现在,上述工作正常,但我想知道是否有任何方法可以简化它?

最佳答案

您可以删除一些多余的括号:

^(\d+((\,\d{3,})+)?(\.\d+)?|\.\d+)$

(( ... )+)? 可以替换为:( ... )*,因此最终的正则表达式可能如下所示:

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

如果你想拒绝这样的输入:

50000,000,000.0

并且只允许:

5,000,000.0
50,000,000.0
500,000,000.0

然后做这样的事情:

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

关于javascript - 我怎样才能简单地使用这个数字格式验证正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13306844/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com