【发布时间】:2016-01-14 21:39:38
【问题描述】:
大家好,我正在尝试验证输入是否具有正确的数据。我需要检查输入是模式 xx、xx 或 xxx 中的数字。例如,如果用户输入 100 或 120,32,它将通过验证。我正在尝试为此制作正则表达式,但我不擅长这个主题。我有 xx,xx 的工作代码,但是如何添加检查第一个或第二个选项以不引发错误?这是我所拥有的:
/^[+]?\d+\,\d+/
【问题讨论】:
标签: php regex validation
大家好,我正在尝试验证输入是否具有正确的数据。我需要检查输入是模式 xx、xx 或 xxx 中的数字。例如,如果用户输入 100 或 120,32,它将通过验证。我正在尝试为此制作正则表达式,但我不擅长这个主题。我有 xx,xx 的工作代码,但是如何添加检查第一个或第二个选项以不引发错误?这是我所拥有的:
/^[+]?\d+\,\d+/
【问题讨论】:
标签: php regex validation
您的问题
对于您提到的示例,这将匹配所有出现:
/\d{2,3}(,\d{2})?)/
它说(基本英语):两到三位数字,后跟可选的“逗号和两位数字”。解释见Regex101上的例子:https://regex101.com/r/hU5kJ7/1
但是,我看不出有任何理由将浮点数之前的数字限制为 3 位,因此要使其打开,您可以省略 3:
/\d{2,}(,\d{2})?)/
它说(基本英语):两位到无限位,后跟可选的“逗号和两位数”。
除此之外
我真的不建议您自己再次实施基本的数字(或货币?)验证。这就像重新发明*。你会在互联网上找到很多很多类似的验证实现,在所谓的验证库或框架中。
【讨论】:
这个正则表达式应该可以解决你的问题:
/^\d+(,\d+)?/
【讨论】: