Javascript验证中的正则表达式

Javascript验证中的正则表达式,javascript,Javascript,我对javascript非常陌生,一直在玩正则表达式。我正在尝试创建一个简单的密码/用户名验证表单。我相信我的正则表达式是错误的,在某个地方我把语法弄乱了,因为它无法运行。谁能告诉我我做错了什么?谢谢 这是我的密码: <html> <head> <title>Username/Password Validation</title> <script type="text/javascript"> function che

我对javascript非常陌生,一直在玩正则表达式。我正在尝试创建一个简单的密码/用户名验证表单。我相信我的正则表达式是错误的,在某个地方我把语法弄乱了,因为它无法运行。谁能告诉我我做错了什么?谢谢

这是我的密码:

 <html>

 <head>

 <title>Username/Password Validation</title>

 <script type="text/javascript">

 function check(username, password, passwordAgain)
 {
// at least one number, one lowercase and one uppercase letter 
// at least six - ten characters that are letters, numbers or the underscore 
var pwd = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])\w{6,10}$/;

// at least six - ten characters that are letters, numbers or the underscore 
//the first character CANNOT start with a digit
var user = /^!=.*\d\w{6,10}$/;

if (pwd.test(password)) && (user.test(username)) && (password == passwordAgain)
{
alert("Passed Validation");
}
else if (password != passwordAgain)
{
alert(Your passswords don't match.");
}
else if !(pwd.test(password)) && !(user.test(username))
{
alert(username + password + " Your password and username are not valid.");
}
else if !(pwd.test(password)) && (user.test(username))
{
alert(password + " This password is not valid.");
}
else
{
alert(username +" This username is not valid.");
}


 </script>
 </head>

 <body>

 <form>

 <h3> Username-Password Validation </h3>

<ul>
<li> The username must be between 6 and 10 characters long. </li>
<li> The username must contain only letters and digits. </li>
<li> The username cannot begin with a digit. </li>
<li> The password and the repeat password must match. </li>
<li> The password must be between 6 and 10 characters. </li>
<li> The password must contain only letters and digits. </li>
<li> The password must have at least one lower case letter,<br /> at
 least one upper case letter, and at least one digit. </li>
</ul>


Username: <input type = 'text' id = 'username' /> <br />

Password: <input type = 'text' id = 'password' /> <br />

Reenter Password: <input type = 'text' id = 'passwordAgain' /> <br/> 

<p>

<input type ='button' onclick='check(username, password, passwordAgain )' value='Submit' />

<input type ='reset' value='Clear' /> 

</p>

</form>

</body>

</html>

用户名/密码验证
功能检查(用户名、密码、密码)
{
//至少一个数字、一个小写字母和一个大写字母
//至少六到十个字母、数字或下划线字符
var pwd=/^(?=.*\d)(?=.[a-z])(?=.[a-z])\w{6,10}$/;
//至少六到十个字母、数字或下划线字符
//第一个字符不能以数字开头
var user=/^!=.*\d\w{6,10}$/;
if(pwd.test(password))&&&(user.test(username))&&(password==password)
{
警报(“通过验证”);
}
else if(password!=password)
{
警惕(你的佩剑不相配);
}
否则如果!(pwd.test(密码))和&!(user.test(用户名))
{
警告(用户名+密码+“您的密码和用户名无效。”);
}
否则如果!(pwd.test(密码))&&(user.test(用户名))
{
警报(密码+“此密码无效”);
}
其他的
{
警报(用户名+“此用户名无效”);
}
用户名密码验证
  • 用户名长度必须介于6到10个字符之间
  • 用户名只能包含字母和数字
  • 用户名不能以数字开头
  • 密码和重复密码必须匹配
  • 密码必须介于6到10个字符之间
  • 密码必须仅包含字母和数字
  • 密码必须至少有一个小写字母,
    at 至少一个大写字母和至少一个数字
用户名:
密码:
重新输入密码:

*编辑***

<html>
<head>
 <title>Username/Password Validation</title>

 <script type="text/javascript">
    function check(username, password, passwordAgain){
        //List of possible error messages
        var errorList = '';

        // at least six - ten characters that are letters, numbers or the underscore
        var sixtotencharacters = /\w{6,10}$/;

        // at least one number, one lowercase and one uppercase letter 
        var oneofeach = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])/;

        //first character does not start with digit
        var firstDigit = /^!=.*\d/;

        //Begin validation

        if (sixtotencharacters.test(password) && sixtotencharacters.test(username)  && oneofeach.test(password) && firstDigit.test(username) && password == passwordAgain)
           {
            alert("Passed Validation");
    }
        else
        {
         if (password != passwordAgain){
            errorlist = 'Your passswords don\'t match. ';
        }if (!sixtotencharacters.test(username)){
            errorlist = errorlist + 'Username needs to be six to ten characters. ';
        }if (!sixtotencharacters.test(password)){
            errorlist = errorlist + 'Password needs to be six to ten characters. ';
        }if (!oneofeach.test(password)){
            errorlist = errorlist + 'You need to have at least one number, one lowercase and one uppercase letter. ';
        }if (!firstDigit.test(username)){
            errorlist = errorlist + 'First character of username can\'t be a digit. ';
        }
    alert(errorlist);

    }
   </script>
</head>

<body>

<form>

<h3> Username-Password Validation </h3>

<ul>
<li> The username must be between 6 and 10 characters long. </li>
<li> The username must contain only letters and digits. </li>
<li> The username cannot begin with a digit. </li>
<li> The password and the repeat password must match. </li>
<li> The password must be between 6 and 10 characters. </li>
<li> The password must contain only letters and digits. </li>
<li> The password must have at least one lower case letter,<br /> at
 least one upper case letter, and at least one digit. </li>
</ul>


Username: <input type = 'text' id = 'username' /> <br />

Password: <input type = 'text' id = 'password' /> <br />

Reenter Password: <input type = 'text' id = 'passwordAgain' /> <br/> 

<p>

<input type ='button' onclick='check(username, password, passwordAgain )' value='Submit' />

<input type ='reset' value='Clear' /> 

</p>

</form>

</body>

</html>

用户名/密码验证
功能检查(用户名、密码、密码){
//可能的错误消息列表
var errorList='';
//至少六到十个字母、数字或下划线字符
var sixtotentcharacters=/\w{6,10}$/;
//至少一个数字、一个小写字母和一个大写字母
var OneOfech=/^(?=.*\d)(?=.[a-z])(?=.[a-z])/;
//第一个字符不以数字开头
var firstDigit=/^!=.*\d/;
//开始验证
if(sixtotentcharacters.test(密码)&&sixtotentcharacters.test(用户名)&&oneofeach.test(密码)&&firstDigit.test(用户名)&&password==password)
{
警报(“通过验证”);
}
其他的
{
if(password!=password){
errorlist='您的密码不匹配';
}如果(!sixtotencharacters.test(用户名)){
errorlist=errorlist+“用户名必须是六到十个字符。”;
}如果(!sixtotencharacters.test(密码)){
errorlist=errorlist+“密码必须是六到十个字符。”;
}如果(!oneofeach.test(密码)){
errorlist=errorlist+“您需要至少有一个数字、一个小写字母和一个大写字母。”;
}如果(!firstDigit.test(用户名)){
errorlist=errorlist+“用户名的第一个字符不能是数字。”;
}
警报(错误列表);
}
用户名密码验证
  • 用户名长度必须介于6到10个字符之间
  • 用户名只能包含字母和数字
  • 用户名不能以数字开头
  • 密码和重复密码必须匹配
  • 密码必须介于6到10个字符之间
  • 密码必须仅包含字母和数字
  • 密码必须至少有一个小写字母,
    at 至少一个大写字母和至少一个数字
用户名:
密码:
重新输入密码:

**这是最新的更新,进一步采纳了Jason的建议* 用户名/密码验证

  <script>
    window.onload = check() {
        document.getElementById('btnSubmit').addEventListener('click', check() {
            var errors = [];
            var username = document.getElementById('username').value;
            var password = document.getElementById('password').value;
    var passwordAgain = document.getElementById('passwordAgain').value;
            var errorList = document.getElementById("errors");

            errorList.innerHTML = '';

    if (password != passwordAgain) { errors.push("Your passwords do not match") }

            var hasNumber = password.match(/\d+/);

            if (hasNumber == null) { errors.push("You did not include a number in your password") }

            var hasUpper = password.match(/[A-Z]+/);

            if (hasUpper == null) { errors.push("You did not include an Uppercase Letter in your password") }

            var hasLower = password.match(/[a-z]+/);

            if (hasLower == null) { errors.push("You did not include an Lowercase Letter in your password") }

    var hasAtleast6lessThan10password = password.length < 6 || password.length > 10; 

    if (hasAtleast6lessThan10password) { errors.push("Your password must be at least 6 characters long and cannot be more than 10") } 

            var hasAtleast6lessThan10username = username.length < 6 || username.length > 10;

            if (hasAtleast6lessThan10username) { errors.push("Your username must be at least 6 characters long and cannot be more than 10") } 

            var firstCharacterNotDigit = username.match(/^[^\d]/);

            if (firstCharacterNotDigit == null) { errors.push("Your username may not begin with a number") }  

            if (errors.length > 0) {

                for (var i = 0; i < errors.length; i++) {
                    var errorElem = document.createElement("li");
                    errorElem.innerHTML = errors[i];

                    errorList.appendChild(errorElem);
                }
            }

        });
    };
</script>


</head>

<body>

<form>

<h3> Username-Password Validation </h3>

<ul>
<li> The username must be between 6 and 10 characters long. </li>
<li> The username must contain only letters and digits. </li>
<li> The username cannot begin with a digit. </li>
<li> The password and the repeat password must match. </li>
<li> The password must be between 6 and 10 characters. </li>
<li> The password must contain only letters and digits. </li>
<li> The password must have at least one lower case letter,<br /> at
 least one upper case letter, and at least one digit. </li>
</ul>


Username: <input type = 'text' id = 'username' size="10" /> <br />

Password: <input type = 'text' id = 'password' size="10"/> <br />

Reenter Password: <input type = 'text' id = 'passwordAgain' size="10" /> <br/> 

<p>

<input type ='button' onclick='check()' value='Submit' />

<input type ='reset' value='Clear' /> 

</p>

</form>

</body>

</html>

window.onload=check(){
document.getElementById('btnSubmit')。addEventListener('click',check()){
var错误=[];
var username=document.getElementById('username')。值;
var password=document.getElementById('password')。值;
var passwordreach=document.getElementById('passwordreach').value;
var errorList=document.getElementById(“错误”);
errorList.innerHTML='';
if(password!=password再次){errors.push(“您的密码不匹配”)}
var hasNumber=password.match(/\d+/);
if(hasNumber==null){errors.push(“密码中没有包含数字”)}
var hasUpper=password.match(/[A-Z]+/);
if(hasUpper==null){errors.push(“密码中没有包含大写字母”)}
var hasLower=password.match(/[a-z]+/);
if(hasLower==null){errors.push(“密码中没有包含小写字母”)}
var hasAtleast6lessThan10password=password.length<6 | | password.length>10;
if(hasAtleast6lessThan10password){errors.push(“您的密码长度必须至少为6个字符,且不能超过10”)}
var hasAtleast6lessThan10username=username.length<6 | | username.length>10;
if(hasAtleast6lessThan10username){errors.push(“您的用户名长度必须至少为6个字符,且不能超过10”)}
var firstCharacterNotDigit=username.match(/^[^\d]/);
if(firstCharacterNotDigit==null){errors.push(“您的用户名不能以数字开头”)}
如果(errors.length>0){
对于(var i=0;iif (pwd.test(password)) && (user.test(username)) && (password == passwordAgain)
alert(Your passswords don't match.");
alert("Your passswords don't match.");
else if !(pwd.test(password)) && !(user.test(username))
else if (!pwd.test(password) && !user.test(username))
else if !(pwd.test(password)) && (user.test(username))
else if (!pwd.test(password) && user.test(username))
<!DOCTYPE html> 
<html>
<head>
<meta charset="UTF-8">
<title>Password Checking with JavaScript</title>
    <script>
        window.onload = function() {
            document.getElementById('btnSubmit').addEventListener('click', function() {
                var errors = [];
                var username = document.getElementById('username').value;
                var password = document.getElementById('password').value;
                var errorList = document.getElementById("errors");

                errorList.innerHTML = '';

                var hasNumber = password.match(/\d+/);

                if (hasNumber == null) { errors.push("You did not include a number in your password") }

                var hasUpper = password.match(/[A-Z]+/);

                if (hasUpper == null) { errors.push("You did not include an Uppercase Letter in your password") }

                var hasLower = password.match(/[a-z]+/);

                if (hasLower == null) { errors.push("You did not include an Lowercase Letter in your password") }

                var hasAtleast8lessThan10 = username.length < 6 || username.length > 10;

                if (hasAtleast8lessThan10) { errors.push("You username must be at least 8 characters long and cannot be more than 10") }  


                var fisrtCharacterNotDigit = username.match(/^[^\d]/);

                if (fisrtCharacterNotDigit == null) { errors.push("Your username may not begin with a number") }  

                if (errors.length > 0) {

                    for (var i = 0; i < errors.length; i++) {
                        var errorElem = document.createElement("li");
                        errorElem.innerHTML = errors[i];

                        errorList.appendChild(errorElem);
                    }
                }

            });
        };
    </script>
</head> 
<body> 
    <ul id="errors"></ul>
    <input type="textbox" name="username" id="username" size="3">
    <input type="textbox" name="password" id="password" size="3">
    <button id="btnSubmit" >Check Password</button>
</body>
</html>
<!DOCTYPE html > 
<html>
    <head>
        <meta charset="UTF-8">
        <title>Password Checking with JavaScript</title>

        <script>
            function check() {
                var errors = [];
                var username = document.getElementById('username').value;
                var password = document.getElementById('password').value;
                var passwordAgain = document.getElementById('passwordAgain').value;

                if (password != passwordAgain) { errors.push("Your passwords do not match") }

                var hasNumber = password.match(/\d+/);

                if (hasNumber == null) { errors.push("You did not include a number in your password") }

                var hasUpper = password.match(/[A-Z]+/);

                if (hasUpper == null) { errors.push("You did not include an Uppercase Letter in your password") }

                var hasLower = password.match(/[a-z]+/);

                if (hasLower == null) { errors.push("You did not include an Lowercase Letter in your password") }

                var hasAtleast6lessThan10password = password.length < 6 || password.length > 10; 

                if (hasAtleast6lessThan10password) { errors.push("Your password must be at least 6 characters long and cannot be more than 10") } 

                var hasAtleast6lessThan10username = username.length < 6 || username.length > 10;

                if (hasAtleast6lessThan10username) { errors.push("Your username must be at least 6 characters long and cannot be more than 10") } 

                var firstCharacterNotDigit = username.match(/^[^\d]/);

                if (firstCharacterNotDigit == null) { errors.push("Your username may not begin with a number") }  

                if (errors.length > 0) {
                    alert(errors.join('\r\r'));
                }
            };
        </script>


    </head>

    <body>

            <form>

            <h3> Username-Password Validation </h3>

            <ul>
            <li> The username must be between 6 and 10 characters long. </li>
            <li> The username must contain only letters and digits. </li>
            <li> The username cannot begin with a digit. </li>
            <li> The password and the repeat password must match. </li>
            <li> The password must be between 6 and 10 characters. </li>
            <li> The password must contain only letters and digits. </li>
            <li> The password must have at least one lower case letter,<br /> at
             least one upper case letter, and at least one digit. </li>
            </ul>


            Username: <input type = 'text' id = 'username' size="10" /> <br />

            Password: <input type = 'text' id = 'password' size="10"/> <br />

            Reenter Password: <input type = 'text' id = 'passwordAgain' size="10" /> <br/> 

            <p>

            <input type ='button' onclick='check()' value='Submit' />

            <input type ='reset' value='Clear' /> 

            </p>

            </form>

    </body>
</html>
errorlist = errorlist + 'First character of username can't be a digit. ';
errorlist = errorlist + 'First character of username can\'t be a digit. ';
<html>
    <head>
     <title>Username/Password Validation</title>

    <script type="text/javascript">
        function check(username, password, passwordAgain){
            //List of possible error messages
            var errorList = '';

            // at least six - ten characters that are letters, numbers or the underscore
            var sixtotencharacters = /\w{6,10}$/;

            // at least one number, one lowercase and one uppercase letter 
            var oneofeach = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])/;

            //first character does not start with digit
            var firstDigit = /^!=.*\d/;

            //Begin validation
            if (password != passwordAgain){
                alert("Your passswords don't match.");
            }else if (!sixtotencharacters.test(username)){
                errorlist = 'Username needs to be six to ten characters. ';
            }else if (!sixtotencharacters.test(password)){
                errorlist = errorlist + 'Password needs to be six to ten characters. ';
            }else if (!oneofeach.test(password)){
                errorlist = errorlist + 'You need to have at least one number, one lowercase and one uppercase letter. ';
            }else if (!firstDigit.test(username)){
                errorlist = errorlist + 'First character of username can\'t be a digit. ';
            }else{
                alert("Passed Validation");
            }
        }
    </script>
</head>

<body>

<form>

<h3> Username-Password Validation </h3>

<ul>
<li> The username must be between 6 and 10 characters long. </li>
<li> The username must contain only letters and digits. </li>
<li> The username cannot begin with a digit. </li>
<li> The password and the repeat password must match. </li>
<li> The password must be between 6 and 10 characters. </li>
<li> The password must contain only letters and digits. </li>
<li> The password must have at least one lower case letter,<br /> at
 least one upper case letter, and at least one digit. </li>
</ul>


Username: <input type = 'text' id = 'username' /> <br />

Password: <input type = 'text' id = 'password' /> <br />

Reenter Password: <input type = 'text' id = 'passwordAgain' /> <br/> 

<p>

<input type ='button' onclick='check(username, password, passwordAgain )' value='Submit' />

<input type ='reset' value='Clear' /> 

</p>

</form>

</body>

</html>