Javascript 避免使用控制字符的正则表达式
我正在使用flex并使用regExp检查从UI输入的值。我想确保输入的值没有任何控制字符,并将基于此发出警告。由于我们支持多种语言,我不能让正则表达式包含所有可能的正值,因此我需要使用黑名单控制字符正则表达式。我尝试了^[^\x00-\x1F\x7F\u2028\u2029]*$,但如果存在除控制字符以外的任何常规字符,它将成功匹配。我希望它应该返回不匹配的情况下,即使是一个单一的控制字符存在。我应该在这个正则表达式中更改什么Javascript 避免使用控制字符的正则表达式,javascript,regex,apache-flex,Javascript,Regex,Apache Flex,我正在使用flex并使用regExp检查从UI输入的值。我想确保输入的值没有任何控制字符,并将基于此发出警告。由于我们支持多种语言,我不能让正则表达式包含所有可能的正值,因此我需要使用黑名单控制字符正则表达式。我尝试了^[^\x00-\x1F\x7F\u2028\u2029]*$,但如果存在除控制字符以外的任何常规字符,它将成功匹配。我希望它应该返回不匹配的情况下,即使是一个单一的控制字符存在。我应该在这个正则表达式中更改什么 将非常感谢您的帮助。您可以使用以下技巧将否定集置于前向,然后是一个。
将非常感谢您的帮助。您可以使用以下技巧将否定集置于前向,然后是一个。并作为一个整体捕获:
^((?=[^\x00-\x1F\x7F\u2028\u2029]).)*$
您可以使用以下技巧将否定集放在前向中,后跟一个。并作为一个整体捕获:
^((?=[^\x00-\x1F\x7F\u2028\u2029]).)*$
控制字符在[\x01-\x1A]范围内。所以,试试^[^\x01-\x1A]+$。看见你可以说,如果你给正则表达式输入一个由控制字符和非控制字符组成的混合字符串,那么它就不应该匹配,如果你放弃了锚,它就会匹配。控制字符在[\x01-\x1A]范围内。所以,试试^[^\x01-\x1A]+$。看见你可以说,如果你给正则表达式输入了一个由conrtrol和非控制字符组成的混合字符串,那么它就不应该匹配,如果你放弃了锚,它就会匹配。它对ab不起作用◘ ○ cd,其中ab和cd之间的字符是控制字符。我查过了。它显示匹配,但不应显示匹配。它不适用于ab•◘ ○ cd,其中ab和cd之间的字符是控制字符。我查过了。它正在显示匹配,但不应显示匹配。