我只想只允许这个字符(引号内的theese)“a-z0-9.?!-_”(最后一个字符是空格)。有我的代码,但一定有什么错。我试图检查文件,但我迷路了。textarea的preg_replace模式
$output = preg_replace('/![a-z0-9.!?-_ ]/i', '', $_POST['textarea']);
我只想只允许这个字符(引号内的theese)“a-z0-9.?!-_”(最后一个字符是空格)。有我的代码,但一定有什么错。我试图检查文件,但我迷路了。textarea的preg_replace模式
$output = preg_replace('/![a-z0-9.!?-_ ]/i', '', $_POST['textarea']);
要否定一个字符类,这样做:
[^a-z0-9.!?_ -]
你有什么(在!
之前)是不是你如何否定它。还要注意-
应该被转义,或者移动到字符类的末尾,否则它有特殊的含义。
这不是你如何否定角色类。改为使用脱字符号(^
)。
$output = preg_replace('/[^a-z0-9.!?_ -]/i', '', $_POST['textarea']);
连字符,在字符类内使用时表示的范围,除非它是最后一个字符在类,类中的第一个字符,或者直接在开口否定插入符号(^
)之后。在上面的正则表达式中,我已将连字符的位置更改为最后一个,但是,为了清晰起见,我建议使用反斜杠(\^
)将其转义。