preg_match - 肯定有更好的方法来搜索这些字符

preg_match - For sure there is a better way to search for these characters

因此,我想检查用户输入是否包含以下某些字符: " ' < >

我希望有人能用更少的代码告诉我更好的方法

谢谢!

我使用了 preg_match,但我只是用 4 个嵌套的 if 来管理它。

/*Checks if the given value is valid*/

private function checkValidInput($input)
{
    /*If there is no " */
    if(preg_match('/"/', $input) == false)
    {
        /*If there is no ' */
        if(preg_match("/'/", $input) == false) 
        {
            /*If there is no <*/
            if(preg_match("/</", $input) == false) 
            {
                /*If there is no >*/
                if(preg_match("/>/", $input) == false) 
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
        }
        else
        {
            return false;
        }
    }
    else
    {
        return false;
    }
}

您可以创建一个正则表达式 class

preg_match('#["\'<>]#', $input);

编辑:

如果您需要检查所有字符,请使用带有 for 循环的 strpos()

function checkInput($val) {
    $contains = true;
    $required = "<>a";

    for($i = 0, $count = strlen($required); $i < $count ; ++$i) {
        $contains = $contains && false !== strpos($val, $required[$i]);
    }

    return $contains;
}

var_dump(checkInput('abcd<>a')); // true
var_dump(checkInput('abcd>a')); // false, doesn't contain <