textarea是我的表单的一部分。用户必须写一点文字,我想验证这些文字。现在我使用正则表达式如下:用于描述表单输入的正则表达式
/^[0-9a-zA-ZäöüÄÖÜ_\-']+$/
虽然我在处理所有单词,AOU正则表达式所提到的äöüÄÖÜ..为无效。此外,它不接受空的空间。
任何想法如何提高正则表达式?
textarea是我的表单的一部分。用户必须写一点文字,我想验证这些文字。现在我使用正则表达式如下:用于描述表单输入的正则表达式
/^[0-9a-zA-ZäöüÄÖÜ_\-']+$/
虽然我在处理所有单词,AOU正则表达式所提到的äöüÄÖÜ..为无效。此外,它不接受空的空间。
任何想法如何提高正则表达式?
使用Unicode的正则表达式:
/[\pL\pN_\-]+/
首先,您可能遇到了编码问题,这就是为什么äöüÄÖÜ被注册为无效。我不是PHP用户,所以我不能直接回答你的问题,但看看this page可能会帮助你。而且,使用适当的字符类可能比明确写出所有适当的字母更好。唉,这也可能是编码配置依赖。
其次,你需要一个空间,在你的正则表达式,所以
/^[0-9a-z A-ZäöüÄÖÜ_\-']+$/ // note space after a-z
应该工作。请注意我在上一段中关于使用字符类所写的内容。而不是a-zA-ZäöüÄÖÜ
你可能只使用\w
表示所有“字”字符(字母,数字等),所以正则表达式将
/^[\w_\-' ]+$/
你考虑到来自用户的内容文本\w
可能就足够了是“有效的”?
好,因为它是一个描述文本文本可能包含相当一切,一个单词序列和字符,限制这个序列像“。”,“!”要么 ”?”; \ w不接受öäÖÄüÜ.. – 2010-11-28 14:31:38
的PCREü修改允许UTF-8。您还缺少从正则表达式的空间,你可以凝聚了一点:
/^[0-9a-zäöü\- ]+$/ui
虽然我不知道,如果“我”将与外国字符的首都工作。
您可能还需要包含标点符号。
您可能希望使用`\ p {Pd}`而不是`-`(可能),并且您可能希望使用`\ p {Pc}`而不是`_`可能,但更不可能)。 – tchrist 2010-11-29 00:33:59