簡體   English   中英

驗證功能不起作用

[英]validation function doesn't work

我已經創建了一個Java腳本函數,它應該驗證輸入字符,該字符應包含10個字符並且可以包含字母數字字符,但是此函數不起作用,請幫幫我

 function ValidateNIC(id) { var letters = /^[0-9a-zA-Z ]+$/; while(id.value.length==10) if(id.value.match(letters)) { return true; } else { alert('NIC must have alphanumeric characters only or should contain 10 charaters'); id.focus(); return false; } } 

就您的代碼而言,如果長度不是10,則什么也不會發生。 更好的方法可能是:

if ((id.value.length == 10) && id.value.match(letters)) {
    return true;
}
alert("NIC must ...");
id.focus();
return false;

您可以在Regex中放置所有驗證條件,例如^[a-zA-Z0-9]{10}$ 請注意,正則表達式模式字符串中的附加{10}僅在長度恰好10時用於創建匹配項。

然后,您可以使用Regex Object test方法,該方法針對字符串測試regex模式,如果匹配成功,則返回true ,否則返回false。

使用正面和負面的測試用例,完整填寫以下經修改的代碼段。

 function ValidateNIC(id){ var aphaPattern10 = /^[a-zA-Z0-9]{10}$/g; var result = aphaPattern10.test(id.value); if(!result){ alert('NIC must have alphanumeric characters only or should contain 10 charaters'); //id.focus(); } return result; } var testObjPass = { value : "012345678a"} console.log(ValidateNIC(testObjPass)); var testObjFail = { value : "012345678a21312"} console.log(ValidateNIC(testObjFail)); 

以下代碼檢查以下NIC必須僅包含字母數字字符或包含10個字符。 因此,如果只有10個字符,則不會發出其他警報,它將測試正則表達式。 考慮到id是具有鍵值的對象

  function ValidateNIC(id)
  {
      var letters = /^[0-9a-zA-Z ]+$/;

    if(id.value.length!==10){
      if(id.value.match(letters))
      {
          return true;
      }
      else
      {
          alert('NIC must have alphanumeric characters only or should contain 10 charaters');
          id.focus();
          return false;
      }
      }
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM