正则表达式匹配一个点或三个点验证器

regular expression to match one dot or three dot validator

本文关键字:三个 验证 正则表达式 一个      更新时间:2023-09-26

在字段中希望允许一个点或三个点

对于3点,我的正则表达式是否有效

/^[a-zA-Z]+[.]{3}$/

但我尝试了一个和三个,它不工作。我尝试使用|(或)符号

/^([a-zA-Z]+[.]{1})|([a-zA-Z]+[.]{3})$/

Thanks in advance

再次感谢它的工作,但我想允许以下选项

表示单词中任意位置的1 0或3点,但不包括2、4、5点。

1) M.C.A
2) M.C.A...
3) M...CA.

下面的regex可以满足以上要求

/^([a-zA-Z]+('.|'.'.'.)([a-zA-z]+)?)+$/

您可以将or语句简化为一组,例如

^[a-zA-Z]+('.|'.'.'.)$

这将匹配以....结尾的任意数量的字符

你可以使用

/^[a-zA-Z]+[.](?:[.]{2})?$/

表示匹配一个点,还可以匹配两个点。

(?:[.]{2})?是一个非捕获组(因为?:),它是可选的,因为最后的?

改变的范围是错误的(字符串开始锚只影响第一个改变,字符串结束锚只影响第二个改变):

/^([a-zA-Z]+[.]{1})   |   ([a-zA-Z]+[.]{3})$/

更改括号以确保两个锚都绑定到两个更改:

/^([a-zA-Z]+[.]{1}|[a-zA-Z]+[.]{3})$/

或者,更好的是,不需要任何修改:

/^[a-zA-Z]+'.('.{2})?$/

您放错了|,您正在尝试匹配以([a-zA-Z]+[.]{1})开头或以([a-zA-Z]+[.]{3})结尾的文本

正确的正则表达式是

/^[a-zA-Z]+([.]{3}|[.])$/