我想允许使用字母数字字符和句点;但是,短语不能连续包含两个或更多个句点,它不能以句点开头或结尾,并且不允许使用空格。
我正在使用PHP和Javascript。
到目前为止,我有/^(?!.*\.{2})[a-zA-Z0-9.]+$/
这适用于允许使用字母数字字符和句点,同时拒绝空格和连续句点,但我仍然不确定如何检查开始和/或结束句点。我怎么能这样做?并且,有没有更好的方法来做我已经拥有的东西?
答案 0 :(得分:3)
绘制有限状态机几乎总是有助于概念化正则表达式应该是什么样的。
^(?:\w\.?)*\w$
答案 1 :(得分:1)
这是一种可能的方式
/^(?!\.)((?:[a-z\d]|(?<!\.)\.)+)(?<!\.)$/i
有关更多说明和测试,请参阅此处:http://www.regex101.com/r/rZ6yH4
编辑:根据泰勒的解决方案,这是他的方式,缩短并缩减为字母和数字
/^(?:[a-z\d]+(?:\.(?!$))?)+$/i
答案 2 :(得分:0)
一个开始是:
/^[^. ](?!.*\.{2})[a-zA-Z0-9.]+[^. ]$/
但应仔细测试。