標籤: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總結