用逗号作为小数分隔符的数字的 Google 表单正则表达式

Posted

技术标签:

【中文标题】用逗号作为小数分隔符的数字的 Google 表单正则表达式【英文标题】:Google form regex for numbers with comma as decimal separator 【发布时间】:2017-01-06 14:01:46 【问题描述】:

我正在尝试找出一个正则表达式,用于以逗号作为小数分隔符的数字的 Google 表单数据验证。

有效条目示例:

123,5 ; 1 ; 0,1 ; 0,001

无效条目示例:

123.5 ; [a-z] ; any characters other than numbers

我已经尝试过^[1-9]\d*(,\d+)?$,但它似乎不接受逗号。

【问题讨论】:

这个正则表达式一般看起来不错,但不接受任何小于 1 的值,例如 0,01 您的数据与您描述的完全一样吗?在这种情况下,您的正则表达式将不匹配。仅当条目为“123,5”且没有空格或其他任何内容时才会匹配。 试试 "^( (\d)(,\d+)* *;?)+$" 正如你所建议的,我刚刚尝试了 "^ *([1-9]\d*(,\d+)? *;?)+$" 但它不接受逗号或任何数字从 0 开始,比如 0,1, 修正了评论中的表达并为你写了答案 【参考方案1】:

示例: 123,5 ; 1; 0,1 ; 0,001

正则表达式

[\d*.\,1\;1]

试试看:http://regexr.com/3f0r0

【讨论】:

我认为我无法正确解释我的问题,但根据您的回答,我使用了 ^[\d*\,1-9]*$ 并且成功了。基本上,它只验证带或不带小数位的正数,使用逗号作为小数分隔符,这正是我所需要的。非常感谢! 知道如何更新 ^[\d*\,1-9]*$ 以仅验证带两位小数的数字吗? 试试看:^[0-9]+(\,[0-9]1,2) 或 ^[\d]+(\,[\d]2) 【参考方案2】:

以下将匹配整数和小数

(?:\d*\,)?\d+

我认为您使用逗号表示十进制数。

【讨论】:

以上是关于用逗号作为小数分隔符的数字的 Google 表单正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

Android - 逗号作为数字键盘上的小数分隔符

如何在 Google Charts 中指定小数点分隔符?

在 Google 表格中用逗号替换数字小键盘产生的小数点

用逗号作为小数分隔符解析Double的最佳方法?

逗号作为小数分隔符空格作为千​​位分隔符C# [重复]

用逗号作为小数分隔符解析双精度