nodejs正则提取html,Nodejs正则表达式函数之match、test、exec、search、split、replace
1.?Match函數正則表達式
使用指定的正則表達式函數對字符串驚醒查找,并以數組形式返回符合要求的字符串數組
原型:stringObj.match(regExp)函數
參數:spa
stringObj 必選項,須要去進行匹配的字符串orm
RegExp ?必選項,指定的正則表達式索引
返回值:若是沒有使用g(全局匹配)選項,則返回第一個匹配的字符串、該字符串所在位置及原始字符串組成的數組,若是使用g選項,則返回全部匹配的字符串組成的數組字符串
示例1:input
varstr?=?“aaabbbcccaaabbbccc”;原型
varres?=?str.match(/aaa/);//沒有使用g選項string
console.log(res);//輸出[?'aaa',?index:?0,?input:?'aaabbbcccaaabbbccc'?]?第一個表示匹配的字符串;第二個表示匹配的字符串坐在的索引位置,從0開始計算;第三個表示原始字符串;
示例2:
varstr?=?“aaabbbcccaaabbbccc”;
varres?=?str.match(/aaa/g);//使用g選項,全局匹配
console.log(res);//輸出[?'aaa',?'aaa'?]?全部匹配的字符串組成的數組
2.exec函數
使用指定的正則表達式模式去字符串中查找匹配項,并以數組形式返回,若是未查找到則返回null
原型:regExp.exec(stringObj)
參數:
regExp?必選項,表示指定的正則表達式模式
stringObj?必選項,表示須要查找的字符串
返回值:不管有無g選項,都返回第一個匹配的字符串、該字符串所在位置及原始字符串組成的數組,可是該方法能夠返回子匹配項,是match所不能及的
示例1:
varstr?=?“aaabbbcccaaabbbccc”;
varregExp?=?/aaa/;//未使用g選項
varres?=?regExp?.exec(str);
console.log(res);//輸出[?'aaa',?index:?0,?input:?'aaabbbcccaaabbbccc'?]
示例2:
varstr?=?“aaabbbcccaaabbbccc”;
varregExp?=?/aaa/g;//使用g選項
varres?=?regExp?.exec(str);
console.log(res);//輸出[?'aaa',?index:?0,?input:?'aaabbbcccaaabbbccc'?]
示例3:
varstr?=?“aaabbbccc1234aaabbbccc”;
varregExp?=?/ccc([0-9]+)aaa/;
varres?=?regExp?.exec(str);
console.log(res);//輸出[?'ccc1234aaa',?'1234',?index:?6,?input:?'aaabbbccc1234aaabbbccc'?]?第一個表示整個正則表達式所匹配的內容;第二個表示()內容的子表達式所匹配的內容;第三個和第四個同上
示例4:
varstr?=“aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc”;
varreg?=?/ccc([0-9]+)aaa/;
varres?=?reg.exec(str);
console.log(res);//輸出同示例三,由于exec只返回第一個匹配的字符串,若是想所有返回,則須要借助while循環和g參數來實現,以下
varstr?=“aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc”;
varreg?=?/ccc([0-9]+)aaa/g;
while(res?=?reg.exec(str)){
console.log(res);
}
//輸出以下:
[ 'ccc1234aaa', '1234', index: 6, input: 'aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc' ][ 'ccc5678aaa', '5678', index: 28, input: 'aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc' ]
//使用這個方法時切記加上g選項,不然while循環將沒法跳出,每次都循環第一個匹配項,致使死循環,可能卡死!
3.test函數
原型:regExp.test(str)
參數:regExp表示正則表達式模式??stringObj表示須要進行匹配的字符串
返回值:布爾類型,匹配則返回true,不然false
示例1:
varstr?=“aaabbbcccaaabbbccc”;
varreg?=?/[a-z]+/;
varres?=?reg.test(str);
console.log(res);//輸出true
示例2:
varstr?=“aaabbbcccaaabbbccc”;
varreg?=?/[0-9]+/;
varres?=?reg.test(str);
console.log(res);//輸出false
//該函數通常用來檢測某字符串是否符合指定的規則
4.search函數
原型:stringObj.search(regExp)
參數:regExp表示正則表達式模式??stringObj表示須要進行匹配的字符串
返回值:返回第一個匹配的字符串所在的位置(偏移量),從0開始
示例1:
varstr?=“aaabbbcccaaabbbccc”;
varreg?=?/ccc/;
varres?=?str.search(reg);
console.log(res);//輸出?6
5.replace函數
原型:stringObj.replace(regExp,?replaceText)
參數:regExp表示正則表達式模式,stringObj表示須要進行匹配的字符串,replaceText表示替換成該文本內容,replaceText也能夠是返回字符串的一個函數
返回值:返回替換以后的字符串
示例1:
varstr?=“aaabbbcccaaabbbccc”;
varreg?=?/aaa/;
varres?=?str.replace(reg,?’111′);
console.log(res);//返回111bbbcccaaabbbccc?,只替換第一個匹配項,若須要替換全部則須要使用g選項
5.split函數
原型:stringObj.split([separator[,?limit]])
參數:separator表示分隔符(此處也能夠是正則表達式),stringObj表示須要進行匹配的字符串,limit用來限制返回數組元素的個數
返回值:返回分割后的數組
示例1:
varstr?=“aaa,bbb,ccc”;
varreg?=?/,/;
varres?=?str.split(reg);
console.log(res);//輸出[?'aaa',?'bbb',?'ccc'?]
//其實這里能夠簡單的寫為var?res?=?str.split(“,”);
示例2:
varstr?=“aaa,bbb:ccc@ddd#eee”;
varreg?=?/[,:@#]/;
varres?=?str.split(reg);
console.log(res);//輸出[?'aaa',?'bbb',?'ccc',?'ddd',?'eee'?]?這才是用正則的強大之處
示例3.
varstr?=“aaa,bbb:ccc@ddd#eee”;
varreg?=?/[,:@#]/;
varres?=?str.split(reg,?3);
console.log(res);//輸出[?'aaa',?'bbb',?'ccc']
總結
以上是生活随笔為你收集整理的nodejs正则提取html,Nodejs正则表达式函数之match、test、exec、search、split、replace的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软正式发布 ChatGPT 版必应搜索
- 下一篇: html中从下往上遮罩效果,css制作从