day17-JavaScriptRegex

來源:互聯網
上載者:User

標籤:生效   set   get   replace   log   位置   表單   比較   span   

一、概要

  在python 的學習中我們又學到一個re模組,在javascript 中也是支援正則的,JS中比較簡單只有兩個方法:

  test  -檢查字串中是否和正則匹配 ,返回 true,false

  exec  - 擷取Regex匹配的內容,如果未匹配,值為null,否則,擷取匹配成功的數組

二、正則回顧 
 1 1.代碼 2 [...] 匹配方扣號中字元的任意一個字元, 3         其中可以使用“—” 表示制定範圍[0-9][a-z,A-Z] 4          5     樣本 : 6     /[012] 可以與0A1B2C 中的字元,0,或者1,2匹配一次。 7     下面會將量詞{} 8      9 [^...] 非,除了括弧內的內容,其它可以匹配10 11         [^a-z] ,除了小寫字母a-z不匹配,其它匹配12         13 .          匹配除了換行,斷行符號之外的任一字元14         [^\r\n]15         16 \d      匹配任意一個數字 相當於[0-9]17 \D        匹配除了數字之外,相當於[^0-9]18 19 \s        匹配任意空白字元,如空格,定位字元,分行符號,20         相當於[\t\n\x0B\f\r]21         22 \S      相對\s 匹配非空白字元23 24 \w      匹配任意一個數字,字母,大小寫25         [a-zA-Z0-9_]26         27 2. 量詞28 29 ?        匹配前面一項0次或者1次30 31         執行個體:/JS?/  作用於S32                 /[JS]?/ 作用於JS33 +         匹配前面項 1次或者多次,34             單至少一次35             36 *        匹配前面一項0次,或者多次37             任意次數38             39 {n}        匹配兩次  /o{2}/  google ,匹配聯絡兩個o  home 不匹配40                 41 {n,m}    匹配次數範圍  n<=x<m                 42                 43                 44 3,位置45 46 ^        字元的開頭,注意去吧[^...]47 48         例子:49         /^g/  匹配 good ,不匹配 bug50         51 $        匹配字串的行結尾52         /g$/  匹配 bug 不匹配good53         54         55 \b      匹配單詞的邊界56         例子: /e\b/  匹配 I love seek ,匹配love 中的e57         58 \B       與\b 相反,匹配中間59 60 61 4,選擇匹配符    | 或則62         例子 /1|2/  匹配1,或者263         64 5,分組 ()65 66     例子, JavaScript  , /J(ava)?Script67     68     可以匹配 JSctipt, JavaScript69         70         注意區分 [ava]  這個相當於 3個單元,只要其中有一個匹配就行71         (ava) 是一個整理, (ava)? 匹配ava一次或者0次

 

三、JS中的正則

  1.通過RegExp類的構造方法建立
        \d{3}
        文法格式:new RegExp(pattern,[flags])
        pattern:必選參數,用於指定Regex的標誌資訊。
            g:全域標誌,如果設定了該標誌,對於莫個文本執行搜尋,或者替換時
                文本中所有的匹配將其作用,如果沒有只生效一次。
            i:忽略大小寫標誌,
            m:多行標誌,如果不設定這個標誌,那麼^只能匹配字串的開頭,$只能匹配字串的結尾。
            
            var objExp=new RegExp("\\d",g);
            
            
    2.通過Regex字面量建立RegExp 對象
    
        Regex字面量由兩條//中間加入模式比對字元串組成
        如果還要指定標誌資訊,則在最後面的/ 加上標誌資訊,比如G,i
        var objExp=/\d/g;
        
        
    3.使用test()方法進行模式比對
        test() aa方法用於對於一個指定字元創執行模式比對,
        如果匹配成功,返回true, 否則返回false

  

檢查電話/^(\d{3,4}-)?\d{8}$//^(\d{3}-)?\d{8}$|^(\d{4}-)?\d{7,8}$<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body><form name="form1"><input type="text" name="tel" id="tel"><input type="button" value="檢測" onclick="checkTel()"></form><script>function checkTel() {var str=form1.tel.value;console.log(str);var objExp=/^((\d{3,4}-)?\d{7,8})$/;if(objExp.test(str)){alert("OK")}else{alert("NO")}}</script></body></html>

   4. 使用exec() 方法進行模式比對
            
            exec() 方法傳回值不是true, false,
            
            而是當沒有搜尋到匹配的字元時,返回null,
            否則返回一個數組,這個數組的第一個元素包含與Regex相匹配的字串
            其它元素包含的是匹配的各個分組()

            regExp.exec(str)
            
            例子,社會安全號碼碼,提取出生年月

  

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4     <meta charset="UTF-8"> 5     <title>Title</title> 6 </head> 7 <body> 8     <form name="form1"> 9         <div>pls input :生分證號碼</div>10         <input type="text" name="idcard" id="idcard">11 12         <input type="button" value="提取出生年月日" onclick="getBrithday()">13     </form>14 15     <script>16         function getBrithday() {17             var str=form1.idcard.value;18             console.log(str);19             var objExp=/(\d{6})(\d{8})(\d{4})/;20             console.log(objExp.test(str));21             var arr=objExp.exec(str);22             if(arr!=null){23                 alert("出生日期:"+arr[2]);24             }else{25                 alert("gun")26             }27         }28     </script>29 </body>30 </html>

 

四、字串中相關方法
12345678 obj.search(regexp)                   擷取索引位置,搜尋整個字串,返回匹配成功的第一個位置(g模式無效)obj.match(regexp)                    擷取匹配內容,搜尋整個字串,擷取找到第一個匹配內容,如果正則是g模式找到全部obj.replace(regexp, replacement)     替換匹配替換,正則中有g則替換所有,否則只替換第一個匹配項,                                        $數字:匹配的第n個組內容;                                        $&:當前匹配的內容;                                        $`:位於匹配子串左側的文本;                                        $‘:位於匹配子串右側的文本                                        $$:直接量$符號
五、自訂表格單驗證外掛程式

5.1、表單驗證的目的?

減少對資料庫的請求,對於哪些簡單的使用者輸入格式或者使用者輸入為空白,但是密碼和使用者的操作,需要交給幕後處理。但是如果瀏覽器的js被禁用了,那就只能發到後台,讓後台去處理了。所以我們一般情況下是前端寫一部分,後端全部寫。

day17-JavaScriptRegex

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.