简体   繁体   English

RegExp:如何仅匹配字母

[英]RegExp: How to match only letters

I have been attempting to add this error check part in var letters for another 8 lines but it seems to completely destroy my entire error check when I add these lines. 我一直在尝试为其他8行在var letters添加此错误检查部分,但是当我添加这些行时,它似乎完全破坏了我的整个错误检查。

In summary 综上所述


var letters = /^[A-Za-z]+$/;
if(username.value.match(letters)) {
  myerror += "Username is good. <br>"; 
 } else {
  myerror += "Username can only have letters. <br>"; 
 }

More context: 更多内容:


<script>
    function valfunc() {

        var username = document.getElementById("username").value;
        var password = document.getElementById("password").value;
        var confirm = document.getElementById("confirm").value;
        var age = document.getElementById("age").value;
        var myerror = "";

        if (username.length == 0) {
            myerror += "Username field has been left blank. <br>";
        }

        if (password.length == 0) {
            myerror += "Password field has been left blank. <br>";
        }

        if (confirm.length == 0) {
            myerror += "Confirm field has been left blank. <br>";
        }

        if (age.length == 0) {
            myerror += "Age field has been left blank. <br>";
        }

        if ((username.length < 5) || (username.length > 15)) {
            myerror +=
                "Username should be between 5 and 15 characters long. <br>";
        }

        if (password !== confirm) {
            myerror += "Password and Confirm input text box values should match. <br>";
        }

        var letters = /^[A-Za-z]+$/;
        if (username.value.match(letters)) {
            myerror += "Username is good. <br>";
        } else {
            myerror += "Username can only have letters. <br>";
        }

        if (age <= 0) {
            myerror += "Age should be a positive integer. <br>";
        } else {
            if ((age < 18) || (age > 110)) {
                myerror += "Age should be between the values 18 and 110. <br>";
            }
        }

        document.getElementById("output").innerHTML = myerror;

        if (myerror.length > 1) {
            return false;
        } else {
            return true;
        }

    }
</script>

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed  -->
</script>

remove the username.value use username.you are not using the exact username.value should be undefined it will throw error while you use username.value.match() 删除username.value使用用户名。您没有使用确切的username.valueundefined ,当您使用username.value.match()会引发错误

var letters = /^[A-Za-z]+$/;
if(username.match(letters))
 {
  myerror += 
  "Username is good. <br>"; 
 }
 else{
  myerror += 
  "Username can only have letters. <br>"; 
 }

Here lies the error 错误就在这里

if(username.value.match(letters))

username is string, not an object as you have already taken value from object here username是字符串,不是对象,因为您已经从此处获取了对象的值

var username = document.getElementById("username").value;

thats why it is giving error, it should be 多数民众赞成在为什么它给错误,这应该是

if(username.match(letters))

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

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