用于PHP和Javascript中简单密码验证的正则表达式

用于PHP和Javascript中简单密码验证的正则表达式,javascript,php,jquery,regex,Javascript,Php,Jquery,Regex,我试图用PHP验证密码,我想用Javascript使用相同的正则表达式,在我的PHP中,当我试图使用以下正则表达式时,我遇到了错误。(警告:filter_var():编译失败:偏移量14处字符类中的范围无序) /^[a-zA-Z0-9\-\]\[\?\//^[a-zA-Z0-9\]\[\?\/\看看这个“模块化”正则表达式 /(?=.*\d)(?=.[a-z])(?=.[a-z])。{8,}/.test(密码) 此密码应具有: (?=.*\d)=数字 (?=.[a-z])=小写字母 (?=.[A

我试图用PHP验证密码,我想用Javascript使用相同的正则表达式,在我的PHP中,当我试图使用以下正则表达式时,我遇到了错误。
(警告:filter_var():编译失败:偏移量14处字符类中的范围无序)

/^[a-zA-Z0-9\-\]\[\?\/
/^[a-zA-Z0-9\]\[\?\/\看看这个“模块化”正则表达式

/(?=.*\d)(?=.[a-z])(?=.[a-z])。{8,}/.test(密码)

此密码应具有:

  • (?=.*\d)
    =数字
  • (?=.[a-z])
    =小写字母
  • (?=.[A-Z])
    =大写字母
  • {8,}
    =至少8个字符长
  • 特殊字符部分:摘自上述答案之一,谢谢@stribizev

  • (?=.[?\/{-])。{8,}/.test(pass)
    您可以使用

    ^[a-zA-Z0-9_\]\[?\/<~#`!@$%^&*()+=}|:\";\',>{ -]{4,20}$
                                                 ^^
    

    ^[a-zA-Z0-9\]\[?\/和。如果您使用的PHP版本低于5.5,则可以使用
    密码散列()
    。我正在对我的用户类中的密码进行散列,
    $password=password\u散列($user\u passwd,password\u DEFAULT)
    唯一的问题是连字符,对吗?将其放在字符类的末尾,在JS和PHP中不必转义。使用
    ^[a-zA-Z0-9\]\[?\/这是否意味着我的正则表达式适用于您?那么我发布一个答案吗?@Stribizev,是的,它确实发布了一个答案。谢谢,但您缺少连字符。@翻表我故意将其删除,因为它看起来像一个错误。我使用了您在代码下面发布的字符列表,其中不包括连字符。您可能想更新您的代码UR原始问题。我想包括其他提到的特性。只要把它们作为附加条件(.= *[%])@转台来测试您的正则表达式,就可以使用Chrome DEV工具中的控制台;如果您觉得我的答案有用,请考虑一下投票。
    
    /^[a-zA-Z0-9_\]\[\?\/\<\~\#\`\@\$%\^&\*\(\)\+=\}\|:\";\'\,>\{]{4,20}$/
    
    ^[a-zA-Z0-9_\]\[?\/<~#`!@$%^&*()+=}|:\";\',>{ -]{4,20}$
                                                 ^^