Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式:长度不超过20个字符的字符串,不包含特定字符_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式:长度不超过20个字符的字符串,不包含特定字符

Javascript 正则表达式:长度不超过20个字符的字符串,不包含特定字符,javascript,regex,Javascript,Regex,我正在尝试使regexp用于验证不包含 ^ ; , & . < > | 具有1-20个字符。任何其他Unicode字符都是有效的(例如,亚洲字母) 如何做?您的正则表达式\w[^;,&.|]{1,20}包含可能不匹配所有Unicode字母的\w(我猜您的正则表达式与\w的Unicode字母不匹配)。无论如何,\w只匹配模式中的一个字符 另外,您说需要排除^,但在您的模式中缺少它。 要验证长度,还必须使用^/$锚定来标记字符串的开头和结尾 若要为与特定字符不匹配的某些范围创建图案,您需要在其周围带

我正在尝试使regexp用于验证不包含 ^ ; , & . < > | 具有1-20个字符。任何其他Unicode字符都是有效的(例如,亚洲字母)

如何做?

您的正则表达式
\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}$