PHP正则表达式 - 除了字母数字,空格,短划线和@符号之外的所有内容

时间:2014-04-18 13:59:32

标签: php regex

我目前正在使用此功能删除不需要的字符:

    $pattern        = "[^a-zA-Z0-9_ .]*";
    $form_lookup    = @ereg_replace($pattern, '', $form_lookup);

如何包含/允许@符号?

这些似乎没有按预期工作:

$pattern        = "[^a-zA-Z0-9_ .\@]*";
$pattern        = "[^a-zA-Z0-9_ .@]*";

2 个答案:

答案 0 :(得分:4)

而不是ereg_replace使用preg_replace

$form_lookup    = 'foo@!:_;';
$pattern        = '/[^a-zA-Z0-9_ .@]*/';
$form_lookup    = preg_replace($pattern, '', $form_lookup);

输出:

string 'foo@_' (length=5)

答案 1 :(得分:0)

您可以使用此正则表达式:

/[^\w\s@-.]/

使用preg_*而不是ereg_*,因为它已被弃用