JAVASCRIPT正則表達式

正則表達

    1.作用

          1.1.測試字符串的某個模式(電話號碼模式或一個信用卡號碼).

          1.2.替換文本.

          1.3.根據模式匹配從字符串中提取一個子字符串。可以用來在文本或輸入字段中查找特定文字

    2.語法 由普通字符(例如字符 a z)以及特殊字符(稱爲元字符)組成的文字模式

      1.量詞

          ? 零次或一次

          * 零次或多次

          + 一次或多次

          {n}匹配n {n,}至少n {n,m} nm (m>n).

      2.預定義類(系統已經做好了的.)

          \s 匹配一個空白字符  [ \n\r\t\f\x0B]

          \w 數字,字母,下劃線  [a-zA-Z0-9_]

          \d 數字  [0-9]

          \S 匹配一個非空白字符  [^ \n\r\t\f\x0B]

          \W 非數字,字母,下劃線  [^a-zA-Z0-9_]

          \D 非數字  [^0-9]

      3.選項標誌 可以組合使用.

          g 全文查找.

          i 忽略大小寫.

          m 多行查找.

      4.其他

          \ 轉義字符

          ^ 匹配輸入字符串的開始位置. [^ ]取反.

          $ 匹配輸入字符串的結束位置.

          . 一個任意字符.

      5.兩種聲明方式

          1,new 一個RegExp

          var  reg = new RegExp();      RegExp是一個對象,Array一樣

          var reg = new RegExp("a","gi");       匹配所有的aA

          2,字面量的聲明方式/\d+/  /[\u4e00-\u9fa5]{2,}/驗證漢字

 

    3.正則表達式對象的方法及使用

          1.test,返回一個 Boolean值,它指出在被查找的字符串中是否存在模式。如果存在則返回 true,否則就返回 false reg.test(str);

          2.exec,用正則表達式模式在字符串中運行查找,並返回包含該查找結果的一個數組。[只要匹配的到的話就直接取出bin返回]reg.exec(str);

          3.compile,把正則表達式編譯爲內部格式,從而執行得更快。

          4.match,它就是將所有匹配的內容,以數組的形式全部返回.str.match(reg);

          5.元字符匹配正則表達式本身時,必須對這些元字符轉義. //????( [ { \ ^ $ | ) ? * + .

           var re = /\?/;//將匹配?

           re = new RegExp("\\?");//正確,將匹配?//雙重轉義

            脫字符 ^,$  var reg = /^as/gi;//^表示必須要以as開頭.

          6.簡單類(字符類) var re = /[abc123]/;//將匹配abc1236個字符中一個只要有一個就可以了

          7.反向類 re = /[^abc]/;//將匹配除abc之外的一個字符

          8.範圍類 re = /[a-z]/;//將匹配小寫a-z 26個字母

          9.組合類 re = /[a-z0-9A-Z_]/;//將匹配字母,數字和下劃線

          10.預定義類. \s,\S \w,\W \d,\D

          分組 var reg = /^([a-z]+)(\s+)\d+/;

          創建的兩種方式

           1.var reg = new RegExp('as','gi');

           2.var reg = /as/gi;

      其他

          1.replace() 替換  str.replace(/^-+/g,'*')   str.replace(/\s+/g,'')去空格.

          2.split() 拆分  str.split(/[^\d]/)對數字進行拆分.

          3.search(); 找位置str.search(/\d/),找數字出現的位置,

          4.str.indexOf(1) 找位置 //不能放正則表達式

    4.貪婪量詞與惰性量詞

      1.貪婪量詞:如果是整個匹配就直接將全部的返回,要是整體不匹配就從後往前匹配,直到碰到不匹配的,

        就將匹配到的返回,繼續匹配剩下的.(+,?,*,{n},{n,},{n,m});

          var  str = "abb#asdfdbbbsaiouisbbb";

          var reg1 = /\w+bbb/; //\w+bbb表示一個或多個字母或數字,下劃線加上bbb.

          //alert(reg1.exec(str)+"|"+"\n"+str.match(reg1));//asdfdbbbsaiouisbbb //匹配了繼續匹配剩下的.

      2.惰性量詞:???它首先將第一個字符當成一個匹配,如果成功則退出,如果失敗,則測試前兩個字符,

        依些增加,直到遇到合適的匹配爲止.(+?,??,*?,{n}?,{n,}?,{n,m});

          var  str = "absdbas*dfdbbbsaisdfouisbbb";

          var reg1 = /\w+?bbb/; //-匹配到了就不在匹配了

          //alert(reg1.exec(str)+"|"+"\n"+str.match(reg1));//dfdbbb

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章