只允许使用preg_match的几个字符

时间:2013-06-02 11:38:12

标签: php preg-match

我想使用preg_match只允许几个字符,更确切地说,我想只允许这些字符:a-z A-Z 0-9。 ,()@#! ?

如何使用preg_replace来检查文本是否包含多个字符?

2 个答案:

答案 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);