我要使它发挥作用,我已经束手无策了。
我只需要:
例子:
埃蒂尔
不允许使用afgTYULO (只包含5个有效字符)
LOVE12345WERT是不允许的(从爱开始)。
允许asdERTY12 12^&(至少6个有效字符(ERTY12上和数字))
asAAertArtytyAtytytuArtyttyAyuyuyyA是不允许的,即使我们有6个有效的字符,但它们都是一样的。
请指点。
注:我编辑这个问题是因为我忘记了作业中的一些要点。
发布于 2013-03-01 11:27:21
注:此正则表达式与原问题中的描述相匹配。自那以后,编辑们就大大地改变了要求。
如果我正确理解你的话,这个regex应该能起作用:
/^(?!LOVE)[^a-z]+$/这将匹配任何不以爱开头且不包含小写字母的内容。
(注:假设为标准英文字母表,a-z )
解释:
^和$锚定到字符串的开头和结尾。这将强制模式匹配整个字符串。
(?!LOVE)是前瞻性的.它检查字符串没有以爱开始,但它根本没有将匹配位置向前移动。因此,其余的regex仍然检查整个字符串。
[^a-z]是一个否定的字符类,它匹配任何不是小写字母的字符。
+与前面的事物匹配一次或多次。因此它匹配一个或多个不是小写字母的字符。
更新:
那么,你也想不允许任何只有相同的字符重复?下面是与只包含相同字符的字符串匹配的正则表达式:
/^(.)\1+$/(.)匹配单个字符并将其放入第一个捕获组中。
\1+匹配捕获组的一个或多个事件。
在这种情况下,因为它与您不想要的输入匹配,所以您必须检查regex不匹配。
可以使用另一种展望将其合并在同一个正则表达式中:
/^(?!LOVE)(?!^(.)\1+$)[^a-z]+$/但是,当您向相同的正则表达式添加越来越多的条件时,理解起来就越来越难了。如果您必须进行几次检查,通常更明智的做法是将它们划分为不同的正则表达式。
https://stackoverflow.com/questions/15156520
复制相似问题