Regex 带有alpha、连字符、下划线和点字符的正则表达式
我写了一个正则表达式:Regex 带有alpha、连字符、下划线和点字符的正则表达式,regex,Regex,我写了一个正则表达式: /^[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-
/^[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}$/
见
详细信息:
-字符串的开头^
-字符串中至少有2个alpha字符(即,必须连续出现两次:(?=(?:[^a-zA-Z]*[a-zA-Z]){2}
-除ASCII字母外,零个或多个字符[^a-zA-Z]*
-一个ASCII字母)[a-zA-Z]
-2到60次允许的字符[-\.a-zA-Z]{2,60}
-字符串结尾$
-
\u
是一个单词char,无需在任何地方转义它。
不需要在字符类内转义
要告诉正则表达式引擎将
、
和-
字符限制为字符串中的最大10个字符,请在(?!(?:[^.\u-]*[.\ u-]){11}之后添加^
锚定符:
/^(?!(?:[^._-]*[._-]){11})(?=(?:[^a-zA-Z]*[a-zA-Z]){2})[-_. a-zA-Z]{2,60}$/
你能澄清一下规则吗?字符串中至少有2个字母?或者干脆不允许没有字母的字符串?要清楚的是,您希望至少有两个字母字符吗?然后可能会出现连字符、下划线、句点和空格的任意组合?对不起,是的,字符串中至少有2个字母。这是一个要求。所提到的连字符和其他2个字符可以在任何地方。理想情况下,最多十个(例如)。我可以添加十个连字符、点或十个分数吗?是的,在^
@Wiktor Stribiże:完成配对后添加(?!(?:[^.\u-]*[.\ u-]){11}