用逗号作为小数分隔符的数字的 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 表单正则表达式的主要内容,如果未能解决你的问题,请参考以下文章