2

在字段中要允许一个点或三个点

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

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

但是我尝试了一个和三个都不起作用。我试试| (或)签字

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

提前致谢

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

表示 1 0r 3 点在单词中的任何位置,但不是 2、4、5 点。

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

以下正则表达式适用于上述要求

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

4 回答 4

2

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

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

这将匹配任意数量的以 a....

于 2013-05-14T10:03:32.640 回答
1

你可以用这个

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

意味着,匹配一个点,可选地再匹配两个。

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

于 2013-05-14T10:00:06.717 回答
0

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

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

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

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

或者,更好的是,没有任何交替:

/^[a-zA-Z]+\.(\.{2})?$/
于 2013-05-14T10:00:50.497 回答
0

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

正确的正则表达式是

/^[a-zA-Z]+([.]{3}|[.])$/
于 2013-05-14T10:01:07.857 回答