我想使用preg_match只允许几个字符,更确切地说,我想只允许这些字符:a-z A-Z 0-9。 ,()@#! ?
如何使用preg_replace来检查文本是否包含多个字符?
答案 0 :(得分:2)
为了测试你的刺痛是否包含无效字符,你可以这样做:
if ( preg_match('/[^a-zA-Z0-9.,()@#!?]/', $string) )
echo 'At least ONE invalid character found!';
我不确定我是否理解你的想法,但这里有一些你可以使用的正则表达式:
if ( preg_match('/^[^a-zA-Z0-9.,()@#!?]+$/', $string) )
echo 'All characters are invalid!';
if ( preg_match('/^[a-zA-Z0-9.,()@#!?]+$/', $string) )
echo 'All characters are valid!';
答案 1 :(得分:1)
如果要从字符串中删除除指定字符之外的所有字符,可以使用:
$sanitized = preg_replace('/[^a-zA-Z0-9\.\,\(\)@#!?]/', '', $string);