javascript---正則式(一),javascript---式(

來源:互聯網
上載者:User

javascript---正則式(一),javascript---式(

    Regex(regular expression)是一個描述字元模式的對象.用來驗證用戶端的輸入資料是否符合既定規則,如我們限制輸入字元長度或格式等.因為用戶端驗證,可以節約大量的伺服器端的系統資源,並且提供更好的使用者體驗.

 

①建立Regex

 

兩種建立方式:

var box = newRegExp('box','ig');//第一個參數可選字串,第二個參數模式修飾符var box =/box/ig;//直接用兩個反斜線

 

②測試Regex

 

//在字串中測試模式比對,返回true或falsevar pattern = /box/i;var str = 'box';alert(pattern.test(str)); //使用exec返回匹配數組var pattern = /box/i;var str = 'box';alert(pattern.exec(str));

③使用字串的Regex方法

 

 

/*使用match方法擷取匹配數組*/var pattern =/box/ig;//全域搜尋var str = 'this is abox!that is a box too!';alert(str.match(pattern));//box,box,匹配到兩個boxalert(str.match(pattern).length);//2,擷取數組長度 /*使用search來尋找匹配資料*/var pattern =/Box/ig;//全域不區分大小寫搜尋.注意這裡search方法尋找到即                       返回,也就是說g可有可無.var str = 'this is abox!that is a box too!';alert(str.search(pattern));//10,尋找到返回位置,否則返回-1 /*使用replace替換匹配到的資料*/var pattern = /box/ig;var str = 'this is abox!that is a box too!';alert(str.replace(pattern,'tom'));//將box替換成tom


運行結果:

 

 

/*使用split拆分字串數組*/var pattern=/ /ig;var str = 'this is abox!that is a box too!';alert(str.split(pattern));//將空格拆分開組成數組

運行結果:

 

 

 

 

/*使用靜態屬性*/var pattern = /(g)oogle/;var str = 'this isgoogle!';pattern.test(str);alert(RegExp.input);//thisis google!alert(RegExp.leftContext);//thisisalert(RegExp.rightContext);//!alert(RegExp.lastMatch);//googlealert(RegExp.lastParen);//galert(RegExp.multiline);//false,IE中是undefined

 

/*使用執行個體屬性*/var pattern = /google/ig;alert(pattern.global);//true,是否全域了alert(pattern.ignoreCase);//true,是否忽略大小寫alert(pattern.multiline);//false,是否支援換行alert(pattern.lastIndex);//0,下次的匹配位置alert(pattern.source);//google,Regex的源字串 

 

/*使用點元字元*/varpattern = /g...gle/;//...匹配三個任一字元var str = 'gooogle';alert(pattern.test(str));//true /*使用字元類匹配*/var pattern =/g[a-zA-Z]*gle/;//[a-z]*表示任意個a-z中的字元,不區分大小寫,自己可以嘗試將*去掉[]內的修改看看效果var str = 'google';alert(pattern.test(str));//true varpattern = /g[^0-9]*gle/;//[^0-9]*表示任意非0~9的字元var str = 'go0gle';alert(pattern.test(str));//false var pattern =/[a-z][A-Z]/;//[a-z]或[A-Z]任意多個字元,末尾有或沒有"+"無影響var str = 'gOOGLE';alert(pattern.test(str));//true /*使用元符號匹配*/var pattern =/g\w*gle/;//\w*匹配任意多個所有字母數字和_var str = 'goo_gle';alert(pattern.test(str));//true var pattern =/\D{7,}/;//\D{7,}匹配至少7個非數字var str = 'googleJ';alert(pattern.test(str));//true

 

var pattern =/goo\sgle/;//\s可以匹配到空格var str = 'goo gle';alert(pattern.test(str));//true var pattern =/google\b/;//\b可以匹配是否到了邊界var str = 'googlell';alert(pattern.test(str));//false 

 

/*使用錨元字元匹配*/ var pattern =/^google$/;//^從頭開始匹配,$從結尾開始匹配var str = 'google';alert(pattern.test(str));//true

 

/*重複匹配*/var pattern =/g*gle/;//匹配0~n個var str ='google';//*,?,+,{n,m}alert(pattern.test(str));//true

/*使用或模式比對*/var pattern =/google|baidu|bing/;//google|baidu|bing三種其中一種字串var str = 'google';alert(pattern.test(str));//true


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.