gpt4 book ai didi

javascript - javascript 中的正则表达式只允许数字、逗号和一个小数点

转载 作者:数据小太阳 更新时间:2023-10-29 06:15:02 25 4
gpt4 key购买 nike

目前我正在使用这个正则表达式来匹配具有单个小数点的正数

/^\d+(\.\d+)?$/

但这不允许逗号。我如何修改它以允许小数点前有零个或多个逗号?

示例:

  • 11,111.00(应该允许)我可以接受在小数点前有任意数量逗号的数字。

编辑:

有效值

  • 111
  • 11,111
  • 11,111.0
  • 111111

输入的值可以带或不带逗号。该字段的数据类型是 SQL MONEY,因此它将处理逗号。

最佳答案

需要

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

参见 regex demo

详情

  • ^ - 字符串的开始
  • (?:\d{1,3}(?:,\d{3})*|\d+) - 以下任一项:
    • \d{1,3}(?:,\d{3})* - 1 到 3 位数字后跟 和 3 的 0+ 序列位数
    • | - 或者
    • \d+ - 一位或多位数字
  • (?:\.\d+)? - . 和 1+ 位的可选序列
  • $ - 字符串结尾。

var strs = [',,,,', '111', '11,111', '11,111.0', '111111'];
var re = /^(?:\d{1,3}(?:,\d{3})*|\d+)(?:\.\d+)?$/;
for (var s of strs) {
console.log(s + " => " + re.test(s));
}

关于javascript - javascript 中的正则表达式只允许数字、逗号和一个小数点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40234497/

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