gpt4 book ai didi

php: preg_match 因特殊字符模式而失败

转载 作者:搜寻专家 更新时间:2023-10-31 21:06:34 24 4
gpt4 key购买 nike

我对 php 正则表达式有疑问。我在 JS 中有相同的正则表达式并且它有效。我不知道是什么问题。

这是 php 代码正则表达式:

echo $password; // 9Gq!Q23Lne;<||.'/\
$reg_password = "/^[-_0-9a-záàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ0\d!@#$%^&*()_\+\{\}:\"<>?\|\[\];\',\.\/\x5c~]{6,30}$/i";
if(isset($password) &&
(!preg_match($reg_password, $password) || !preg_match("#[a-z]#", $password) || !preg_match("#[\d]#", $password))
){
echo "you failed";
}

来自 html 输入的原始密码:

9Gq!Q23Lne;<||.\'/\  

它与 $reg_password 之前的值相同。

我已经使用 mysqli 方法中的 escape_string 进行了测试,但它也不起作用:

$password = $this->db->escape_string($password);
echo $password; // 9Gq!Q23Lne;<||.\'/\\

我不知道我的问题是什么,因为我用过regex101.com测试它并且它有效..

有什么想法吗?谢谢

最佳答案

在你的模式中,你需要使用单引号而不是双引号;)

所以会变成这样

$reg_password = '/^[-_0-9a-záàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ0\d!@#$%^&*()_\+\{\}:\"<>?\|\[\];\',\.\/\x5c~]{6,30}$/i';

关于php: preg_match 因特殊字符模式而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31348728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com