首頁  >  文章  >  web前端  >  JavaScript筆記之表單與正規表示式

JavaScript筆記之表單與正規表示式

高洛峰
高洛峰原創
2016-11-26 09:57:171258瀏覽

正規表示式是一種對文字字串進行驗證和格式化的極其強大的方式。透過使用正規表示式,可以用一兩行JavaScript程式碼完成原本需要幾十行程式碼的複雜任務。
       正規表示式是一種特殊符號編寫的模式,描述一個或多個文字字串,常常被認為是程式設計中最棘手的部分之一,但是只要把混亂的正規表示式分解成有意義的小塊,其文法並不難理解。
       以下的例子,是使用正規表示式驗證電子郵件地址:
[html]
 

 
  Validation 
         
 
 
   

Email Validation

 
   
 
     
 
 

script01.css
[css] ; } 

 
input.invalid { 
    background-color: #FF9; 
    border: 2px red inset 
} 🠎val;
    font-weight: bold; 

script01.js
[javascript]
window.onload = initForms; 
 
function initForms() { 
    for (var i=0; i      
}
 
function validForm() { 
    var allGood = true; 
    var allTags = document.getElementsByTagName("*"); 
 
    for (var i=0; i       if (!validTag(allTags[i])) {  
        } 
    } 
   與所有Good; 
 
    
        var allClasses = thisTag.className.split(" "); 
     
          
        for (var j=0; j         
        } 
     
        thisTag.className = outClass; 
     
        if (outClass.indexOf("invalid") > -1) { 
         
            thisTag.focus(); 
            if (thisTag.nodeName == "INPUT") { 
             
            } 
            返回 false; 
         
        function validBasedOnClass(thisClass) { 
             var classBack =「」; 
         
            switch(thisClass) { 
             case "無效": 
                     ; ; 
                case "email": 
               
                預設值: 
                
            } 
            返回 classBack; 
        } 
                 
     ="color:#ff0000;">var re = /^w+([.-]?w+)*@w+([.-]?w+) *( .w{2,3})+$/; 
 
           返回重新測試(電子郵件); 
        } 
   
            if (parentTag.nodeName == "LABEL") { 
                ParentTag.className += "無效"; 
           

現在開始解釋紅色程式碼行:
      正規表示式總是以斜線(/)開頭和結尾。
      脫字元(^)表示要使用這個表達式檢查以特定的字串開頭的字串。
      表達式w表示任意單一字符,包括a~z、A~Z、0~9或底線。
      加號+表示要尋找前面條目的一次或多次出現。
      前圓括號(表示一個群組。
      方括號[]用來表示可以出現其中任意一個字符,這個方括號內包含字符.-,但是點號對於正則表達式是有特殊意義的,所以需要在它前面加上反斜杠,這表示指的實際上是點號本身,而不是它的特殊意義。可以不出現或出現一次。出現或出現多次。此之後同樣是([.-]?w+)*,這表示電子郵件地址的後綴中允許有點號或連字符。 ,表示希望找到一個點號,後面跟著一些字元。這裡結束。數十行的程式碼來完成相同的程式碼
[javascript]
function validEmail(email) { 
            var invalidChars = "     if (email == "") { 
                return false; 
        return false; 
     for (var k=0; k                var badChar = invalidChars.charAt(k); badChar) > -1) { 
                    return false; 
      
var atPos = email.indexOf("@",1); 
            if (atPos == -1) { 
          } 
            if (email.indexOf("@",atPos+1) != -1) { 
                return false; 
           ; 
            if (periodPos == -1) {   
                       if (periodPos+3 > email.length)  {
                return false; 
            } 
return true; 
        } 
         
       LABEL") { 
               
}  
        由此可見使用正規則表達式確實可以減少大量程式碼。



陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn