我想使用preg_match
只允许几个字符,更准确地说,我只想允许这些字符:a-z A-Z 0-9 . , ( ) @ # ! ?
如何使用preg_replace
, 检查文本是否包含超过这些字符?
我想使用preg_match
只允许几个字符,更准确地说,我只想允许这些字符:a-z A-Z 0-9 . , ( ) @ # ! ?
如何使用preg_replace
, 检查文本是否包含超过这些字符?
如果要从字符串中删除除您指定的字符之外的所有字符,您可以使用:
$sanitized = preg_replace('/[^a-zA-Z0-9\.\,\(\)@#!?]/', '', $string);
为了测试您的字符串是否包含无效字符,您可以执行以下操作:
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!';