生活随笔
收集整理的這篇文章主要介紹了
正则 - 阮一峰
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學習地址
一 正則實例方法
1. test
var r
= /x/g
;
var s
= '_x_x' ; r.lastIndex //
0
r.test
( s
) //
true r.lastIndex //
2
r.test
( s
) //
true r.lastIndex //
4
r.test
( s
) //
false
死循環,因為while循環的每次匹配條件都是一個新的正則表達式,導致lastIndex屬性總是等于0。
var count
= 0 ;
while ( /a/g.test
( 'babaa' )) count++
;
var count
= 0 ;
var test1
= /a/g
while ( test1.test
( 'babaa' )) count++
;
console.log
( count
) //
3
2. exec
正則實例 .exec返回數組,匹配不到時返回nullg全局 + lastIndex : 會從上次結束的位置繼續
var reg
= /a/g
;
var str
= 'abc_abc_abc' var r1
= reg.exec
( str
) ;
r1 //
[ "a" ]
r1.index //
0
reg.lastIndex //
1 var r2
= reg.exec
( str
) ;
r2 //
[ "a" ]
r2.index //
4
reg.lastIndex //
5 var r3
= reg.exec
( str
) ;
r3 //
[ "a" ]
r3.index //
8
reg.lastIndex //
9 var r4
= reg.exec
( str
) ;
r4 // null
reg.lastIndex //
0
組匹配:如果正則表示式包含圓括號(即含有“組匹配”),第一個成員是整個匹配成功的結果,后面的成員就是圓括號對應的匹配成功的組。
var s
= '_x_x' ;
var r
= /_
( x
) /
; r.exec
( s
) //
[ "_x" ,
"x" ]
var r
= /a
( b+
) a/
;
var arr
= r.exec
( '_abbba_aba_' ) ; arr //
[ "abbba" ,
"bbb" ]
var reg
= /a/g
;
// 不加g會死循環
var str
= 'abc_abc_abc' while
( true
) { var match
= reg.exec
( str
) ; if ( ! match
) break ; console.log
( '#' + match.index +
':' + match
[ 0 ] ) ;
}
//
//
//
二 字符串方法
1. match
var str
= ' #id div.class ' ;
str
= str.replace
( /
\ s+/g,
'' )
console.log
( str
) //
2. replace
replace方法的第二個參數還可以是一個函數 ,將每一個匹配內容替換為函數返回值。
'3 and 5' .replace
( /
[ 0 -9
] +/g,
function ( match
) { return 2 * match
;
} )
//
"6 and 10" var a
= 'The quick brown fox jumped over the lazy dog.' ;
var pattern
= /quick
| brown
| lazy/ig
; a.replace
( pattern,
function replacer
( match
) { return match.toUpperCase
( ) ;
} ) ;
// The QUICK BROWN fox jumped over the LAZY dog.
replace模板替換
總結
以上是生活随笔 為你收集整理的正则 - 阮一峰 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。