正則表達式


1.關於正則表達式

  處理字符串時,有很多較為復雜的字符串用普通的字符串處理函數無法干凈的完成。比如說,可能需要驗證一個Email地址是否合法,為此需要查看許多不容易檢查的規則。這正是正則表達式的用武之地。正則表達式是功能強大而簡明的字符組,其中可以包含大量的邏輯,特別值得一提的是正則表達式相當簡短。

2.正則表達式的用處

  測試用戶名(必須由字母數字下划線組成)

  戶密碼(必須同時包含大寫小寫數字)

  確認密碼

3.創建一個RegExp對象

創建RegExp對象實例的兩種方式:

(1)構造函數方式 var reg=new RegExp(“表達式”,“附加參數”);

(2)普通方式 var reg=/表達式/附加參數

    附加參數是可選的,用來擴展正則表達式的含義,主要有三個參數: (1)g:全局匹配。 (2)i:用作忽略大小寫的參數。 (3)m:多行匹配。

例如:

  //第一種
  var reg=new RegExp("老羅","g");
  //第二種
  var reg1=/老羅/g;

4.正則表達式語法(perl風格)

  Perl語言的正則表達式已經非常成熟,javascript直接拿來使用。

  格式 /javascript/ 在字符串前后分別加一個斜杠

  匹配函數

    正則.exec(str) 匹配返回內容,否則返回null。    exec(str): exec方法使用RegExp對象實例創建時指定的正則表達式模式搜索字符串,並返回一個包含搜索結果的數組。

      正則.test(str) 匹配返回true,否則返回false。    test(str): 該方法檢查一個字符串中是否存在創建RegExp對象實例時所指定的正則表達式模式,如果存在則返回true,否則返回false。

例如:

  //exrc()方法 如果匹配成功返回搜索內容,否則 返回null

  alert(reg1.exec(str));

  //text()方法 如果匹配成功 返回true, 否則 返回false
  alert(reg.test(str));

5.正則表達式的元素

  正則表達式包括三種元素分別為:量詞、元字符和修飾符

量詞:

 

元字符:

修飾符:

 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <script type="text/javascript">
            //量詞


            // + 匹配至少一個或多個前導字符
//            var str1='phwhphhhhhhhwhhh';
//            var reg1=/hw+h/g;//h和h之間至少有一個或多個w的字符
//            var reg1=/ph+/g;//一個p和一個或多個h在一塊的字符
//            var reg1=/wh+/g;//一個w和一個或多個h在一塊的字符
//            var reg1=/h+/g;//一個或多個h在一塊的字符
//            alert(str1.replace(reg1,'0'));


            // * 匹配至少0個或多個前導字符
//          var str2="luo";
//          var reg2=/l*/g;//..u.o.  前引號后引號也算0個
//          alert(str2.replace(reg2,'.'));
            
//          var str3='phhhhhhhhp';
//          var reg3=/wh*p/g;//找不到
//          alert(str3.replace(reg3,'0'))


            // ? 匹配至少0個或1個前導字符
//          var str4='hello,wolhld';
//          var reg4=/he?/g;//一個h后面跟0個或一個e
//          alert(str4.replace(reg4,'0'));
            
            
            // . 通配符
//          var str5='zhangsanzhangsan';
////          var reg5=/./;//0hangsanzhangsan
////          var reg5=/./g;//0000000000000000
//          var reg5=/zh.ng.an/;//0zhangsan
//          alert(str5.replace(reg5,'0'))


//            {X}匹配x個前導字符
//            var  str5 = "wwwhhhhaaattt";
//            var reg5 = /h{3}/g;
//            alert(str5.replace(reg5,"#"));
//            
//            var  str6 = "wwwhhhhhhhaaattt";
//            var reg6 = /h{3,4}/g;
//            alert(str6.replace(reg6,"#"));
//        
//            var  str7 = "wwwhhhaaattt";
//            var reg7 = /h{3,}/g;
//            alert(str7.replace(reg7,"#"));
//            
//            var  str8 = "1219539627@163.com";
//            var reg8 = /^\w{4,10}@163\.(com|cn)$/g;
//            alert(str8.replace(reg8,"#"));
            
            
            //$結尾
//            var str9 = "what are you doing";
//            var reg9 = /doing$/;
//            alert(str9.replace(reg9,"#"));
//            
//            var str10 = "what";
//            var reg10 = /^what$/g;//^開頭
//            alert(str10.replace(reg10,"#"));
//            
//            var str11 = "aAbcdef";
//            var reg11  = /[a-z]/g;
//            alert(str11.replace(reg11,"#"));
            
            //匹配手機號
            //var cellphone = "15215212345";
            //var regNum = /^1[0-9]{10}$/;
            //alert(regNum.test(cellphone));
            
            
            //元字符
            
            //var str12 = "adebfc";
            //var reg12 = /[^abc]/g;
            //alert(str12.replace(reg12,"#"));
            
            
            //var str13 = "a d ,";
            //var reg13 = /\S/g;//查找非空白字符。
            //alert(str13.replace(reg13,"#"));
            //
            //var str14 = "aaaaaa";
            //var reg14 = /\B/g;//匹配非單詞邊界。
            //alert(str14.replace(reg14,"#"));
            
            //匹配郵箱
//            var email = "123456@qq.com";
//            var email1 = "123456df";
//            var email2 = "123456asfsdf";
//            var email3 = "12345sdfsdf";
//            var regE = /^\w{4,16}@(qq|163|139)\.(com|cn)$/;
//            alert(regE.test(email));
        </script>
    </body>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM