繁体   English   中英

使用正则表达式进行表单验证

[英]Form Validation With Regex

我写了一个函数来验证密码是否有效。 我遇到的唯一问题是弄清楚为什么我用JavaScript编写的这种模式在使用密码测试时没有评估为真:'SteveRogers#256'。 这是我宣布正则表达式模式的问题吗?

PHP

function check_password($pass_word)
{
    $pattern = "#.*^(?=.{8,15})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*\W).*$#";

    return (preg_match($pattern, $pass_word));
}

JavaScript的

function check_password(pass_word) {
    var pattern = new RegExp("#.*^(?=.{8,15})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*\W).*$#");

    return pattern.test(pass_word);
}

在Javascript中删除正则表达式分隔符,因为new RegExp在构造函数中获取String。 正确的Javascript代码应该是:

var pattern = new RegExp("^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*?\\W).{8,15}$");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM