在我的程序 php 中,我希望用户不输入任何字符,除了像这样的字母:“dgdh”、“sgfdgdfg”,但他没有输入数字或其他任何东西,如“7657”或“gfd(-”或“fd54”我测试了这个功能,但它并不涵盖所有情况:
preg_match("#[^0-9]#",$_POST['chaine'])
我怎样才能做到这一点,提前谢谢你
在我的程序 php 中,我希望用户不输入任何字符,除了像这样的字母:“dgdh”、“sgfdgdfg”,但他没有输入数字或其他任何东西,如“7657”或“gfd(-”或“fd54”我测试了这个功能,但它并不涵盖所有情况:
preg_match("#[^0-9]#",$_POST['chaine'])
我怎样才能做到这一点,提前谢谢你
仅匹配字母(无空格):
preg_match("#^[a-zA-Z]+$#",$_POST['chaine'])
解释:
^ # matches the start of the line
[a-zA-Z] # matches any letter (upper or lowercase)
+ # means the previous pattern must match at least once
$ # matches the end of the line
带空格:
preg_match("#^[a-zA-Z ]+$#",$_POST['chaine'])
两件事情。首先,您匹配非数字字符。这显然与字母字符不同。所以你可以简单地使用[a-zA-Z]
or[a-z]
和不区分大小写的修饰符。
其次,您只尝试找到其中一个字符。您不会断言整个字符串是由这些组成的。所以改用这个:
preg_match("#^[a-z]*$#i",$_POST['chaine'])
最简单的可以是
preg_match('/^[a-z]+$/i', $_POST['chaine'])
修饰符用于i
不区分大小写。这样+
至少可以输入一个字母。*
如果要允许空字符串,可以将其更改为。锚^
并$
强制整个字符串只是字母表。(它们分别代表字符串的开头和字符串的结尾)。
如果你想允许 whitespace,你可以使用:
仅在字符串的开头或结尾处有空格:
preg_match('/^\s*[a-z]+\s*$/i', $_POST['chaine'])
任何地方:
preg_match('/^[a-z][\sa-z]*$/i', $_POST['chaine']) // at least one alphabet
只允许空格字符,但不允许其他空格:
preg_match('/^[a-z][ a-z]*$/i', $_POST['chaine'])