我已经写了一个正则表达式:阿尔法正则表达式,连字符,下划线和点字
/^[a-zA-Z\-\_\. ]{2,60}$/
它做工精细十岁上下但它允许---或___或...甚至-_ 。作为输入(至少没有2个alpha)输入,我不想那样。例如,我可以有-aa,a-a,aa ---(对于其他角色也是如此)。
要求是在字符串中应该至少有2个字母,连字符和其他2个非字母符号可以在字符串内的任何位置。
我已经写了一个正则表达式:阿尔法正则表达式,连字符,下划线和点字
/^[a-zA-Z\-\_\. ]{2,60}$/
它做工精细十岁上下但它允许---或___或...甚至-_ 。作为输入(至少没有2个alpha)输入,我不想那样。例如,我可以有-aa,a-a,aa ---(对于其他角色也是如此)。
要求是在字符串中应该至少有2个字母,连字符和其他2个非字母符号可以在字符串内的任何位置。
使用
/^(?=(?:[^a-zA-Z]*[a-zA-Z]){2})[-_. a-zA-Z]{2,60}$/
详细:
^
- 串(?=(?:[^a-zA-Z]*[a-zA-Z]){2})
- 字符串中的至少2个字母字符(即,必须有2个连续的的略去出现:
[^a-zA-Z]*
- 比ASCII字母其他零个或多个字符[a-zA-Z]
- ASCII字母)[-_. a-zA-Z]{2,60}
- 2至60次出现允许字符$
的 - 的端字符串请注意,如果它位于s处,则不需要转义-
挞/字符类的结束。 _
是一个字的字符,不需要在任何地方逃脱它。 .
不需要在字符类中转义。
告诉正则表达式引擎在字符串中限制.
,_
和-
字符到最大10,后^
锚添加(?!(?:[^._-]*[._-]){11})
负前瞻:
/^(?!(?:[^._-]*[._-]){11})(?=(?:[^a-zA-Z]*[a-zA-Z]){2})[-_. a-zA-Z]{2,60}$/
我可以添加十个连字符或点或极点的限制吗? –
是的,在'^'之后加'(?!(?:[^ ._-] * [._-]){11})''。 –
甜,它工作。干杯。 –
能否请您澄清规则?字符串中至少有2个字母?或者只是不允许没有字母的字符串? –
要清楚 - 你想要至少两个字母字符?然后可能有穿插连字符,下划线,句号和空格的组合? – Shiva
对不起,是的字符串中至少有2个字母。这是一项要求。 –