javascript中的reg語法
var reg = /\bis\b/g;
var reg = new Reg( '\\bis\\b' , 'g')
//g代表global尖阔,即全文匹配
修飾符
g:global,即全文匹配
i:ignore case 忽略大小寫,默認為大小寫敏感
m:多行搜索痹屹,//在每一行^和$算不算
s:source:正則表達式本身(/\w/的source為\w)
l:lastIndex:下一次搜索的開始位置(在非全局調(diào)用情況下無效)
(當前匹配結(jié)果,的最后一個字符蟀拷,的下一個字符)
如果沒有配置g屬性,多次調(diào)用查詢時 产还,每次查詢的開頭位置
元字符
原義字符:字符本身的意義
元字符:在正則表達式中有特殊意義的非字母字符
\t:水平制表符(tab鍵)
類
[ ]匹厘,構(gòu)建簡單的類
[abc]表示將字母abc歸為一類,可以匹配這些字符中的任意一個
反向類:[^abc]指不是abc的任意內(nèi)容
范圍類:
[a-z]指a到z的任意一個字符(閉區(qū)間脐区,包含a和z)
[a-zA-Z]愈诚,連寫,匹配所有字母牛隅,
注意:如果想匹配-炕柔,在后面加-,[a-zA-Z-]
預定義類
. === [^\r\n]:除了回車符和換行符以外的所有字符
\d === [0-9]:數(shù)字
\D === [^0-9]
\s === 空白符
\S
\w === [a-zA-Z_0-9]單詞字符(數(shù)字字母下劃線)
\W
邊界字符
^ 以xxx開始
$ 以xxx結(jié)束
\b 單詞邊界
\B 非單詞邊界
量詞
媒佣?出現(xiàn)0次或者一次
+出現(xiàn)一次或者多次
*出現(xiàn)任意次
{n}出現(xiàn)n次
{n,m}出現(xiàn)n-m次
{n,}至少出現(xiàn)n次
{0,n}最多n次
貪婪模式
'123456789'.replace(/\d{3,6}/g,'K')//正則表達式會盡量多的匹配匕累,直到匹配失敗
非貪婪模式
'123456789'.replace(/\d{3,6}?/g,'K')//量詞后面加?啟用非貪婪模式
分組
(Byron){3}//Byron連續(xù)出現(xiàn)三次
Byron{3}//職能匹配到n連續(xù)出現(xiàn)三次
或
|
abcdefg(hig|klm)opqrst//pi
反向引用
忽略分組
前瞻
exp(?=assert)
\w(?=\d)\ //'a2*3'匹配a默伍,因為a前面是個數(shù)字欢嘿,符合前瞻
reg.exec()方法
返回一個數(shù)組衰琐,[lastIndex, 匹配字符串,第一組匹配炼蹦,第二組匹配...]
該數(shù)組還帶兩個對象屬性
index聲明匹配文本起始字符的位置
input存放被檢索的字符串
字符串方法
String.protatype.search(reg或字符串)
查不到返回-1羡宙,查到返回1
String.protatype.match(reg或字符串)
非全局調(diào)用:
返回數(shù)組對象(與exec相同)
該數(shù)組還帶兩個對象屬性
index聲明匹配文本起始字符的位置
input聲明對stringObject的引用
全局調(diào)用:
返回數(shù)組:為所有匹配的子字符串
沒有index和input屬性
String.protatype.split(reg或字符串)
String.protatype.replace(reg,string或function)
若為function(每次匹配的時候調(diào)用一次),參數(shù)
function(匹配字符串掐隐,分組內(nèi)容(無則沒有)狗热,匹配項在字符串中的index, 原字符串)
return替換內(nèi)容