Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
Php 用于描述表单输入的正则表达式_Php_Regex_Validation - Fatal编程技术网

Php 用于描述表单输入的正则表达式

Php 用于描述表单输入的正则表达式,php,regex,validation,Php,Regex,Validation,文本区域是我表单的一部分。用户必须写一些文本,我想验证这些文本。目前,我正在使用以下正则表达式: /^[0-9a-zA-ZäöüÄÖÜ_\-']+$/ 虽然我在正则表达式中提到了äöü196ä220;,但它用äöü处理所有单词。。无效。此外,它不接受空白 如何改进正则表达式?首先,您可能有一个编码问题,这就是为什么äöü196ÖÜ被注册为无效的原因。我不是一个PHP用户,所以我不能直接回答你的问题,但是看一看可能会对你有所帮助。此外,使用适当的字符类可能比显式编写所有适当的字母效果更好。唉,这

文本区域是我表单的一部分。用户必须写一些文本,我想验证这些文本。目前,我正在使用以下正则表达式:

/^[0-9a-zA-ZäöüÄÖÜ_\-']+$/
虽然我在正则表达式中提到了äöü196ä220;,但它用äöü处理所有单词。。无效。此外,它不接受空白


如何改进正则表达式?首先,您可能有一个编码问题,这就是为什么äöü196ÖÜ被注册为无效的原因。我不是一个PHP用户,所以我不能直接回答你的问题,但是看一看可能会对你有所帮助。此外,使用适当的字符类可能比显式编写所有适当的字母效果更好。唉,这也可能与编码配置有关

第二,你需要在正则表达式中有一个空格,所以

/^[0-9a-z A-ZäöüÄÖÜ_\-']+$/ // note space after a-z

应该有用。请注意我在上一段中写的关于使用字符类的内容
\w
可能足以代替
a-zA-Zäääääää

您可以使用
\w
指示所有“单词”字符(字母、数字等),因此正则表达式将
/^[\w\u \-']+$/


您认为来自用户的哪些文本是“有效的”?

使用支持Unicode的正则表达式:

/[\pL\pN_\-]+/

PCRE u修改器允许utf-8。您还缺少正则表达式中的一个空格,可以将其压缩一点:

/^[0-9a-zäöü\- ]+$/ui
虽然我不确定“我”是否会和外国字符的大写字母一起使用


您可能还希望包含标点符号。

由于它是一个描述文本,因此文本可能包含所有内容、一系列单词以及限制其顺序的字符,如“.”、“!”或“?”;您可能希望使用
\p{Pd}
而不是
-
(可能),并且您可能希望使用
\p{Pc}
而不是
(可能,但不太可能)。