Javascript 正则表达式:长度不超过20个字符的字符串,不包含特定字符
我正在尝试使regexp用于验证不包含 ^ ; , & . < > | 具有1-20个字符。任何其他Unicode字符都是有效的(例如,亚洲字母) 如何做?您的正则表达式Javascript 正则表达式:长度不超过20个字符的字符串,不包含特定字符,javascript,regex,Javascript,Regex,我正在尝试使regexp用于验证不包含 ^ ; , & . < > | 具有1-20个字符。任何其他Unicode字符都是有效的(例如,亚洲字母) 如何做?您的正则表达式\w[^;,&.|]{1,20}包含可能不匹配所有Unicode字母的\w(我猜您的正则表达式与\w的Unicode字母不匹配)。无论如何,\w只匹配模式中的一个字符 另外,您说需要排除^,但在您的模式中缺少它。 要验证长度,还必须使用^/$锚定来标记字符串的开头和结尾 若要为与特定字符不匹配的某些范围创建图案,您需要在其周围带
\w[^;,&.|]{1,20}
包含可能不匹配所有Unicode字母的\w
(我猜您的正则表达式与\w
的Unicode字母不匹配)。无论如何,\w
只匹配模式中的一个字符
另外,您说需要排除^
,但在您的模式中缺少它。
要验证长度,还必须使用^
/$
锚定来标记字符串的开头和结尾
若要为与特定字符不匹配的某些范围创建图案,您需要在其周围带有锚定,并且长度设置为:
^[^^;,&.|]{1,20}$
或者(此版本确保只在字符串的开头和结尾匹配,而不是一行):
\A[^^;,&.|]{1,20}\z
请注意,在character类中,几乎所有特殊字符都不需要转义(仅其中一些字符,在您的情况下没有转义)。甚至是插入符号
请参见您可以使用以下选项:
^[^^;,&.<>|]{1,20}$
^[^^;,&.|]{1,20}$
说明:
断言字符串的开头^
- 求反字符类的开始(
)[^]
所有您不想匹配的字符^;,&.|
关闭否定字符类]
匹配范围{1,20}
断言字符串的结尾$
它将匹配1-20范围内指定字符以外的任何字符。您尝试过什么?这只是创建一个带有限制量词的否定类的问题。我非常喜欢regexp,我最近尝试的是\w[^;,&.|]{1,20},但它与亚洲字符不匹配,即使是其中的两个(单词?),也请告诉我们您正在使用的环境。PHP/JavaScript…?此
[^^;,&.|]{1,20}
regex将在更长的字符串中找到匹配项。此表达式是否适用于您,或者您需要进一步的帮助?
\A[^^;,&.<>|]{1,20}\z
^[^^;,&.<>|]{1,20}$