我需要一些关于正则表达式的小帮助以获取以下内容
- 仅允许使用小写字母的字母数字
- 以数字或字母开头
- 允许句点 (.)
- 不允许连续的期间没有..
- 不允许任何其他特殊字符
谢谢,-GM
我需要一些关于正则表达式的小帮助以获取以下内容
谢谢,-GM
^(?![^.]*\.\.)[a-z0-9][a-z0-9.]*$
开头的负前瞻涵盖了您的第四个要求,其他一切都应该非常简单。 ^
并且$
是字符串锚的开头和结尾,字符类强制要求只允许小写字母、数字和.
。
要添加长度限制(6 到 16 个字符之间),只需*
将{5,15}
. *
表示“重复前一个元素零次或多次”,{n,m}
表示“在n
和m
次之间重复前一个元素(包括)”。{5,15}
使用而不是的原因是{6,16}
第一个字符类已经使用了一个字符。这是最终结果:
^(?![^.]*\.\.)[a-z0-9][a-z0-9.]{5,15}$
这里有一些帮助,但不会泄露答案,因为您将学到最多。
[a-z0-9]
. 请注意,此表达式仅匹配一个字符。您必须使用量词来匹配多个,例如 +
.^
$
^
.
具有特殊含义(匹配除换行符之外的任何字符)。因此,您必须对它们进行转义,, 才能选择文字点。转义点的另一种方法是将其放入字符类中:.\.
[.]
所有粗体字都是您可以通过 Google 学习的术语。
我会按照这些思路说一些话:(/^[a-z0-9]+(\.[a-z0-9]+)*\.?$/
假设该行可以以句点结尾)
如果字符串可能不以句点结尾,请使用此选项:
/^[a-z0-9]+(\.[a-z0-9]+)*$/
或者如果可能的话:
/^[a-z0-9]+(\.[a-z0-9]+)*\.?$/
这应该是最好的
^([a-z0-9]+\.?)+$