javascript - 将正则表达式中的组标记为可选

标签 javascript regex

在发送表单之前,我需要使用 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/

相关文章:

java - 当 str 是点 ("."时,如何让 Pattern.matches(regex, str) 返回 false ?

javascript - 如何在没有可选查询字符串参数的情况下从 URL 获取路径或 slug

java - 使用 LostFocus 事件在 Java 中验证文本字段

javascript - 如何使用 Ajax 和 Jquery 每 2 秒动态更改页面标题? (火狐浏览器无法运行?)

javascript - Laravel-Vue JS : What is the best way access backend

javascript - 有条件地响应渲染

javascript - 在每个数字处分割一个字符串

c# - 将长字符串拆分为多行的正则表达式

javascript - 在 Javascript 中使用 Ruby 变量(在应用程序 View 中)

javascript - Meteor/Javascript 函数错误 - TypeError : callback is not a function