正則中的()、[]、{}
阿新 • • 發佈:2018-11-12
() 代表分組
分組(子項)
用小括號表示分組
可以提權: (1+1) * 5
從左往右來數,有幾個()就有幾個分組
/(\d+)\D+(((\d)+)((\D))+)(\d+)/
在replace中,有幾個分組,$0後面的引數就是這幾個分組的值
當分組和形參對應完之後,又是index、input、undefined
注意: 在分組中,如果分組的後面直接加了量詞,那麼結果為量詞的終點位置。
如:
數字0-9
字母:a-z 97-122
大寫字母:A-Z 65-90
大寫小寫的範圍: [A-Za-z]
(/^((1[89])|([2-9][0-9])|(10[0-9])|(110))$/.test(string);
{} 量詞的範圍
{n,m} {0,1} == ? 最小沒有最大1個
{1,} == + 最小1個最多不限
{1,3} 最少1個,最多3個
{0,} * 最小沒有,最多無限
{9} 最大最小都是9
可以提權: (1+1) * 5
從左往右來數,有幾個()就有幾個分組
/(\d+)\D+(((\d)+)((\D))+)(\d+)/
在replace中,有幾個分組,$0後面的引數就是這幾個分組的值
當分組和形參對應完之後,又是index、input、undefined
注意: 在分組中,如果分組的後面直接加了量詞,那麼結果為量詞的終點位置。
如:
let str = '2018.--/11---..5'; str.replace(/((\d+)+)\D+(\d+)\D+(\d+)/,$0,$1,$2) $1 是2018 $2 ((\d)+)是8
[] 中只代表一個
數字0-9
字母:a-z 97-122
大寫字母:A-Z 65-90
大寫小寫的範圍: [A-Za-z]
如果要用匹配18-110以內的數字
( /^1[89]$|^[2-9][0-9]$|^10[0-9]$|^110$/).test(string);
{n,m} {0,1} == ? 最小沒有最大1個
{1,} == + 最小1個最多不限
{1,3} 最少1個,最多3個
{0,} * 最小沒有,最多無限
{9} 最大最小都是9