jsRegex總結

來源:互聯網
上載者:User

標籤:div   子串   多個   模式比對   regexp   index   包含   Regex   gobject   

 RegExp對象和直接量文法的區別:

1.採用直接量文法建立的Regex對象在代碼編譯時間就會產生,是平常開發中常用的方式; 
2.採用建構函式產生的正則對象要在代碼運行時產生。

3.正則對象的方法是指這樣使用的: RegExp對象.方法(字串) 
4.字串對象的方法是這樣使用:字串.方法(RegExp對象)

如果Regex帶有g修飾符,則每一次test方法都從上一次匹配結束的位置開始匹配。

使用了g修飾符的Regex,表示要記錄每一次搜尋的位置,接著使用test方法,每次開始搜尋的位置都是上一次匹配的後一個位置。

1.test方法:

 1 <!DOCTYPE html> 2 <html> 3 <head> 4   <meta charset="utf-8"> 5   <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6   <title>test方法</title> 7 </head> 8 <body> 9   <script type="text/javascript">10     var reg = /gxr/g;11     var str = "111gxr234gxrddgxrty";12     console.log(reg.lastIndex);13     console.log(reg.test(str));14     console.log(reg.lastIndex);15     console.log(reg.test(str));16     console.log(reg.lastIndex);17     console.log(reg.test(str));18     console.log(reg.lastIndex);19     console.log(reg.test(str));20   </script>21 </body>22 </html>

效果:

如果Regex是一個Null 字元串,則會匹配所有的字串,但需要使用new RegExp()方式

 1 <!DOCTYPE html> 2 <html> 3 <head> 4   <meta charset="utf-8"> 5   <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6   <title>test方法</title> 7 </head> 8 <body> 9   <script type="text/javascript">10     console.log(new RegExp(‘‘).test(‘oknok‘));11     console.log(/‘‘/.test(‘gfnm‘));12     console.log(/‘‘/.test("‘‘"));13   </script>14 </body>15 </html>

2.exec()方法

exec() 方法用於檢索字串中的Regex的匹配。

返回一個數組,其中存放匹配的結果。如果未找到匹配,則傳回值為 null。

 

 1 <!DOCTYPE html> 2 <html> 3 <head> 4   <meta charset="utf-8"> 5   <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6   <title>exec方法</title> 7 </head> 8 <body> 9   <script type="text/javascript">10   var str = "/loiouluhj";11   var reg1 = /o/;12   var reg2 = /a/;13   var res1 = reg1.exec(str);14   var res2 = reg2.exec(str);15   console.log(res1);16   console.log(res2);17   </script>18 </body>19 </html>

 如果Regex包含圓括弧,則返回的數組會包括多個元素。首先是整個匹配成功的結果,後面是圓括弧裡匹配成功的結果,如果有多個圓括弧,他們的匹配成功的結果都會成為數組元素

 1 <!DOCTYPE html> 2 <html> 3 <head> 4   <meta charset="utf-8"> 5   <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6   <title>exec方法2</title> 7 </head> 8 <body> 9   <script type="text/javascript">10   var str = ‘abcdjmhngabcjkj‘;11   var reg = /(a)b(c)/;12   var res = reg.exec(str);13   console.log(res); 14   </script>15 </body>16 </html>

對於調用exec方法後返回的數組具有以下兩個屬性:

input 整個原待匹配的字串
index 整個模式比對成功的開始位置

3.search()方法:

search() 方法用於檢索字串中指定的子字串,或檢索與Regex相匹配的子字串。如果沒有找到任何匹配的子串,則返回 -1。search() 方法不執行全域匹配,它將忽略標誌 g。它同時忽略 regexp 的 lastIndex 屬性,並且總是從字串的開始進行檢索,這意味著它總是返回 stringObject 的第一個匹配的位置。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>search方法</title>
</head>
<body>
<script type="text/javascript">
var str = "abcdcef";
var reg="/c/g";
console.log(str.search(/c/g));
console.log(reg.lastIndex);
console.log(str.search(/h/g));
</script>
</body>
</html>

參考內容:http://www.jb51.net/article/97901.htm

jsRegex總結

相關文章

聯繫我們

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