JavaScript之Regex初識1

來源:互聯網
上載者:User

JavaScript之Regex初識1

1、什麼是Regex

Regex(Regular Expression)是一個描述字元模式的對象,ECMAcript的RegExp類表示Regex,而String和RegExp都定義了使用Regex強大的模式比對和文本檢索與替換的函數。
2、建立Regex的方式

第一種建立方式
var box=new RegExp(‘box’); //第一個是參數字串
var box=new RegExp(‘box’,’ig’) //第二個是可選模式修飾符
第二種建立方式
var box=/box/; //直接用反斜線
var box=/box/ig; //在第二個反斜線後面加上模式修飾符

3、測試Regex

RegExp對象包含兩個方法:test()和exec()用於測試字串匹配。
test()
test()方法在字串中尋找是否存在指定的Regex並返回布爾值,如果存在則返回true。不存在則返回false.
exec()
exec()方法也用於在字串中尋找Regex,如果exec()方法執行成功,則返回包含該尋找字串的相關資訊,如果失敗,則返回null.
/使用new運算子的test方法樣本/
var pattern=new RegExp(‘box’,’i’); //建立Regex,不區分大小寫
var str=”This is a Box!”; //建立要比對的字串
alert(pattern.test(str)); //通過test()方法驗證是否匹配

    /*使用字面量方式的test方法樣本*/      var pattern=/box/i;                                //建立Regex,不區分大小寫    var str="This is a Box!";    alert(pattern.test(str));    /*使用exec返回匹配數組*/    var pattern=/box/i;    var str="This is a Box!";    alert(pattern.exec(str));                          //匹配了返回數組,否則返回null

使用字串的Regex的方法

4、擷取控制

Regex元字元是包含特殊含義的字元。它們有一些特殊功能,可以控制匹配模式的方式,反斜線後的元字元將失去其特殊含義。

貪婪與懶惰

貪婪模式與懶惰模式的文法區別在於重複限定修飾符的後面是否有問號,有的話就是懶惰模式,否則就是貪婪模式。

貪婪量詞,是先吃盡所有字元,然後再一個一個地吐出來,直到匹配成功為止。

懶惰量詞,是從頭開始一個字元一個字元地吃,直到匹配成功為止。即貪婪是逐漸向前匹配,而懶惰是向後慢慢匹配。

例子:
var pattern=/[a-z]+?/ //?關閉了貪婪匹配,只替換了第一個
var str=’ajfifdjnfasdfdasdgh’;
var result=str.replace(pattern,’xxx’);
alert(result); //返回xxxjfifdjnfasdfdasdgh

var pattern=/8(.+?)8/g; //禁止了貪婪,開啟的全域
var str=’this is 8abc8, that is 8abc8, there is 8abc8’;
var result=str.replace(pattern,’$1‘);
document.write(result); //返回this is abc, that is abc, there is abc
總結:
個人認為,通過Regex在用戶端進行驗證,可以減輕到伺服器端後再驗證對伺服器的壓力。對Regex的認識還只是粗淺的認識。在以後還需要不斷的實踐來完善。

聯繫我們

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