在发送表单之前,我需要使用 javascript 验证表单上的一些值。只接受数字和一个逗号或点。逗号或点是可选的。 例如,值“111”、“1.0”、“1,0”有效。并且值“1”、“.0”、“1..”或“1..0”无效。因此,正确的值是类似 float 的东西。
换句话说,digits[可选:一个逗号或点]digits
是正确的字符串。
我编写了以下正则表达式:/^([0-9]+)[.|,]{0,1}[0-9]+$/
。我工作正常,除了一种情况 - 当值是个位数时。
如何使我的正则表达式正确工作?
最佳答案
您可以使用 /^([0-9]+)([.,][0-9]+)?$/
其中我强制使用一个点或逗号后跟数字,使整个(点/逗号数字)部分可选。
此外,[.|,]
匹配点、逗号或竖线 (|
)。 [.,]
仅匹配点和逗号。
(您之前的正则表达式不适用于单个数字的原因是您的模式需要匹配第一个 [0-9]+
和 第二个 [0-9]+
在点/逗号之后。如果你想要的)。
关于javascript - 将正则表达式中的组标记为可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23073379/