表达的开头或结尾没有句号?

时间:2013-01-03 16:18:41

标签: php javascript regex

我想允许使用字母数字字符和句点;但是,短语不能连续包含两个或更多个句点,它不能以句点开头或结尾,并且不允许使用空格。

我正在使用PHP和Javascript。

到目前为止,我有/^(?!.*\.{2})[a-zA-Z0-9.]+$/

这适用于允许使用字母数字字符和句点,同时拒绝空格和连续句点,但我仍然不确定如何检查开始和/或结束句点。我怎么能这样做?并且,有没有更好的方法来做我已经拥有的东西?

3 个答案:

答案 0 :(得分:3)

绘制有限状态机几乎总是有助于概念化正则表达式应该是什么样的。

^(?:\w\.?)*\w$

答案 1 :(得分:1)

这是一种可能的方式

/^(?!\.)((?:[a-z\d]|(?<!\.)\.)+)(?<!\.)$/i

有关更多说明和测试,请参阅此处:http://www.regex101.com/r/rZ6yH4

编辑:根据泰勒的解决方案,这是他的方式,缩短并缩减为字母和数字

/^(?:[a-z\d]+(?:\.(?!$))?)+$/i

http://www.regex101.com/r/dL5aG0

答案 2 :(得分:0)

一个开始是:

/^[^. ](?!.*\.{2})[a-zA-Z0-9.]+[^. ]$/

但应仔细测试。