带有千位分隔符的正则表达式有效数字

Use*_*384 3 regex asp.net validation

我在 asp.net 文本框中进行验证,文本框只允许用户输入数字

IE

有效数字:

1234
12.345
12,345,678.231
12,345,678
Run Code Online (Sandbox Code Playgroud)

无效数字:

-1234
12.23.45.67
12,
12,34,56
12,345,6
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用正则表达式通过以下正则表达式在客户端验证用户的输入:

^(?=.+)(?:[1-9]\d*|0)?(?:\.\d+)?$
Run Code Online (Sandbox Code Playgroud)

问题是:

上述正则表达式仅认为以下有效:

1234
12.345
Run Code Online (Sandbox Code Playgroud)

如何修改上面的正则表达式以检查千位分隔符是否输入正确的位置?

alp*_*avo 5

这似乎工作^\d+(,\d{3})*(\.\d+)?$
演示

  • 我建议 [0-9] 而不是 /d 因为,在 asp.net /d 将匹配所有 unicode 数字。例如 1,४४1,234.234४ 会匹配,因为奇怪的字符是另一种语言的数字 (2认同)