正则表达式适用于以下情况

时间:2013-07-25 22:03:38

标签: php javascript regex conditional

我需要一个关于以下

的正则表达式的小帮助
  1. 只允许使用小写字母的字母数字
  2. 以数字或字母开头
  3. 允许句点(。)
  4. 不允许连续的句号否..
  5. 不允许任何其他特殊字符
  6. 谢谢, -GM

5 个答案:

答案 0 :(得分:4)

^(?![^.]*\.\.)[a-z0-9][a-z0-9.]*$

开头的负面预测涵盖了你的第四个要求,其他一切都应该非常简单。 ^$是字符串锚点的开头和结尾,字符类强制要求只允许使用小写字母,数字和.

要添加长度约束(6到16个字符之间),只需将*更改为{5,15}即可。 *表示“重复上一个元素零次或多次”,{n,m}表示“在nm次之间重复上一个元素(包括)”。使用{5,15}而不是{6,16}的原因是第一个字符类已经使用了一个字符。结果如下:

^(?![^.]*\.\.)[a-z0-9][a-z0-9.]{5,15}$

答案 1 :(得分:3)

这里有一些帮助,但没有给出答案,因为你将学到最多。

  1. 要匹配特定的字符组合例如字母数字,请使用字符类例如 [a-z0-9]。请注意,此表达式与一个字符完全匹配。您必须使用量词来匹配多个例如 +
  2. 要用某些东西“开始”或“结束”,您必须分别在第一个字符之前或之后使用锚点^$。 (但请注意。在角色类中,^ 反转字符类。)
  3. 在正则表达式中,.具有特殊含义,即通配符(匹配除换行符之外的任何字符)。因此,您必须转义它们\.,才能选择文字点。另一种逃避点的方法是将它放在一个字符类中:[.]
  4. 非连续性比较棘手。您需要查找有关否定前瞻断言(或外观断言)的更多信息。
  5. 所有加粗的字词都是Google可以学习的字词。

答案 2 :(得分:2)

我会说这些话:/^[a-z0-9]+(\.[a-z0-9]+)*\.?$/(假设该行可以以句号结尾)

答案 3 :(得分:2)

如果字符串可能不以句号结尾,请使用此选项:

/^[a-z0-9]+(\.[a-z0-9]+)*$/

或者如果它可能:

/^[a-z0-9]+(\.[a-z0-9]+)*\.?$/

答案 4 :(得分:0)

这应该是最好的

^([a-z0-9]+\.?)+$