Php 检测特殊字符的子集

Php 检测特殊字符的子集,php,preg-match,Php,Preg Match,我有一个字符串,该字符串的有效性定义为: 该字符串可以有字母数字字符或()或(.)或(-) 不允许使用其他特殊字符 有没有办法在php中只允许某些特殊字符???您可以使用类似这样的代码来只允许包含允许字符集的文本: if (preg_match('/^[\w.-]+$/', $str)) echo "valid $str\n"; else echo "invalid $str\n"; 您可以尝试循环遍历字符串中的每个字符并单独检查它 for($i = strlen($strin

我有一个字符串,该字符串的有效性定义为:

  • 该字符串可以有字母数字字符或()或(.)或(-)
  • 不允许使用其他特殊字符

  • 有没有办法在php中只允许某些特殊字符???

    您可以使用类似这样的代码来
    只允许包含允许字符集的文本:

    if (preg_match('/^[\w.-]+$/', $str))
        echo "valid $str\n";
    else
        echo "invalid $str\n";
    

    您可以尝试循环遍历字符串中的每个字符并单独检查它

    for($i = strlen($string); $i >= 0; $i--)
    {
        $check = $string[$i];
        if(ctype_alnum($check) || $check == "_" || $check == "." || $check == "-")
        {
            //Code if good
    
        }
        else
        {
            //Code if bad
        }
    }
    

    /W检查除a-z | a-z | 0-9或|之外的任何内容,但我想允许(.)和(-)也因为每个字符都有其独特的方式。非常感谢。这正是我想要的。:)