当人们注册我的网站时,我使用以下代码验证他们的名字:
if (preg_match("['W]", $name))
{
$mess = $mess . "Your name must contain letters only.<br>";
$status = "NOTOK";
}
这是因为您的真实姓名不能包含符号,除非您的父母在命名您时喝醉了。
但是,此正则表达式不会检测空格。我该如何解决它?
您可以使用
以下正则表达式:
^['w ]+$
这匹配单词字符'w
和空格的任何组合,但正如伙计们所说要小心,因为某些名称可能包含其他符号。
所以你可以像这样使用它:
if (preg_match("/^[''w ]+$/", $name)) {
// valid name
}
else {
// invalid name
}
试试这个:
<?php
$user_input = 'User_name';
if (!preg_match('/^[a-z0-9_'s]+$/i', $user_input)) {
// Matches English letters, numbers underscores(_) and spaces
$mess = $mess . "Your name must contain letters only.<br>";
$status = "NOTOK";
}
?>
你只是错过了正则表达式分隔符。即使在编程 10 年后,我有时也会这样做。
if (preg_match("/['W]/", $name)) ...