preg_match允许字符串中的特定特殊字符

时间:2016-10-28 06:54:18

标签: php codeigniter

我如何实现该密码(反斜杠,正斜杠,单引号,双引号)然后只有它不会允许其它将使用自定义validation返回true.i对preg_match没有太多了解所以所有建议都可以接受。

我尝试过以下代码来实现这一目标,但无法取得成功。

所以任何人都有一些建议/想法?

php代码:

    public function check_password($str){
        return ( !preg_match("/^[a-z0-9!@#$%^&*()_-+|;:<>,.?]+$/i", $str)) ? FALSE : TRUE;
    }

如果我将排除(反斜杠,正斜杠,单引号,双引号),那么它必须允许我在数据库中存储密码

例如:

Password  : !@#$%^&*()_-+| ;:<>, // true
Password  : /12345               //false
Password  : 1Aa3!@#$%^&*()_-+| ;:<> //true(here white space also allowed)

2 个答案:

答案 0 :(得分:1)

如果我正确理解你只想要这个字符 - 反斜杠,正斜杠,单引号,双引号为禁用以进行密码验证。所以这是代码:

 public function check_password($str){
    return ( preg_match('/^[^\\\"\'\/]+$/i', $str));
 }

答案 1 :(得分:0)

试试这个,

public function check_password($str){
 return (!preg_match('/^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z!@#$%]{8,12}$/', $str)) ? FALSE : TRUE;
}