PHP:检查无效字符的最快方法(除了az,AZ,0-9,#, - ,.,$)之外的所有字符?

Tom*_*Tom 10 php regex validation

我必须尽快检查缓冲区输入到PHP套接字服务器.为此,我需要知道输入消息$ buffer是否包含除以下内容之外的任何其他字符:az,AZ,0-9,#, - ,. 和$

我目前正在使用以下ereg函数,但想知道是否有方法来优化速度.我应该使用不同的功能,还是使用不同的正则表达式?

if (ereg("[A-Za-z0-9]\.\#\-\$", $buffer) === false)
{
    echo "buffer only contains valid characters: a-z, A-Z, 0-9, #, -, ., $";
}
Run Code Online (Sandbox Code Playgroud)

Gum*_*mbo 34

试试这个功能:

function isValid($str) {
    return !preg_match('/[^A-Za-z0-9.#\\-$]/', $str);
}
Run Code Online (Sandbox Code Playgroud)

[^A-Za-z0-9.#\-$]描述任何无效的字符.如果preg_match找到匹配(无效字符),则返回10.此外!1假的,!0真的.因此,isValid返回,如果无效字符被发现,真正的除外.

  • @sivann不,不是在角色类中. (2认同)

小智 10

只允许字符az大写或小写..

if (preg_match("/[^A-Za-z]/", $FirstName))
{
    echo "Invalid Characters!";
}
Run Code Online (Sandbox Code Playgroud)

添加数字..

if (preg_match("/[^A-Za-z0-9]/", $FirstName))
{
    echo "Invalid Characters!";
}
Run Code Online (Sandbox Code Playgroud)

添加其他字符以允许(在这种情况下是感叹号)..

(附加字符前面必须带有"\",如图所示.)

if (preg_match("/[^A-Za-z0-9\!]/", $FirstName))
{
    echo "Invalid Characters!";
}
Run Code Online (Sandbox Code Playgroud)