扩展反转正则表达式以允许一个空格字符。

14 浏览
0 Comments

扩展反转正则表达式以允许一个空格字符。

我应该如何修改下面的模式来允许一个空格字符?

$name = 'too long name';
$pattern_name = '/[^a-zA-Z]/';
if (preg_match($pattern_name,$name)) { // remove any non-letter characters
  $name = preg_replace($pattern_name,'',$name);
  $errors['name'] = 'Invalid characters found and removed in name';
}

使用以下任意一种模式都不起作用:

$pattern_name = '/[^a-zA-Z ?]/';  
$pattern_name = '/[^a-zA-Z] ?/';

预期的结果是匹配成功,因为$name中存在2个空格字符,因此if语句应该为true,替换函数将更新$name,使其值变为“too longname”。

admin 更改状态以发布 2023年5月21日
0
0 Comments

只需在方括号中添加一个空格即可。

$pattern_name = '/[^a-zA-Z ]/';

0
0 Comments

您需要将您的模式更明确。如果您最多可以有一个空格,而且它必须被字母包围,则为:

$pattern_name = '/^[a-z]+( [a-z]+)?$/i';

0