正則捕獲方法

2021-09-11 02:11:20 字數 2082 閱讀 5633

捕獲符合匹配條件的子串

假如匹配到,捕獲的結果是乙個陣列

第乙個陣列元素為捕獲的內容,即擷取的符合匹配條件的第乙個字串

第二個陣列元素為index,即匹配到的第乙個字串的的起始位置

第三個陣列元素為input,值為原始檢測的字串

假如匹配不到 結果就是null

正則捕獲懶惰性

概念:執行一次exec方法只能捕獲到第乙個與正則匹配的內容,這叫正則捕獲懶惰性

原因:lastindex屬性不變,手動修改lastindex屬性也不能改變其懶惰性

要想改變正則捕獲懶惰性,只能在正則後面加修飾符g,並且反覆呼叫exec方法

var reg = /\d+/g;  //匹配包含0或多個0~9之間的數字的字串

var str = "123哈哈456嘿嘿789呵呵";

//第一次呼叫

var arr = reg.exec(str);

console.log(arr,arr2); //得到的結果為乙個包含多個值的物件

//第乙個捕獲的內容

console.log(arr[0]); // 123

//索引值

console.log(arr.index); // 0

//被檢測的原字串

console.log(arr[2]); // 123哈哈456嘿嘿789呵呵

//再次呼叫

var arr2 = reg.exec(str);

//第二次呼叫的匹配到的第二個子串的內容

console.log(arr2[0]); // 456

//第二次呼叫的匹配到子串的起始位置的索引值

console.log(arr2["index"]); // 5

注意:如果正則在定義的時候沒有新增修飾符g,那麼不管使用多少次exec方法,得到的結果都是第乙個符合條件的匹配的字串。

得到的結果是乙個陣列,儲存著所有匹配到的子串

var str = "123哈哈456嘿嘿789呵呵";

var reg = /\d+/g;

var arr = str.match(reg);

console.log(arr); // 123,456,789

//分別獲得每乙個子串

console.log(arr[0]); // 123

console.log(arr[1]); // 456

console.log(arr[2]); // 789

用於檢索字串中指定的子字串,或檢索與正規表示式相匹配的子字串,並返回子串的起始位置。

var str = "123哈哈456嘿嘿789呵呵";

//匹配漢字

//使用正規表示式

var reg = /[\u4e00-\u9fa5]+/g;

var index = str.search(reg);

alert(index); // 3

//使用字串 ---- search 方法可使用字串作為引數。字串引數會轉換為正規表示式。

var index2 = str.search("哈哈");

alert(index); // 3

用於在字串中用一些字元替換另一些字元,或替換乙個與正規表示式匹配的子串。

//練習一:將 嘿嘿 替換為 麼麼噠

var str = "123哈哈456嘿嘿789呵呵";

//將接收字串作為引數

var txt = str.replace("嘿嘿","麼麼噠");

console.log(txt);

//使用正規表示式作為引數

var txt = str.replace(/嘿嘿/,"麼麼噠");

console.log(txt);

//練習2:匹配數字子串,將每一項子串後邊都新增乙個冒號(:)

str = str.replace(/\d+/g,function(item) )

console.log(str); // 123:哈哈456:嘿嘿789:呵呵

Grok 正則捕獲

grok 正則捕獲 s d d s 回顧下 pattern 匹 配 pattern 但不獲取匹配結果,也就是說這是乙個非獲取匹配,不進行儲存供以後使用。這在使用 或 字元 來組合乙個模式的各個部分是很有用。例如,industr y ies 就是乙個比 industry industries 更簡略的...

正則的捕獲

正則的捕獲 exec,返回的結果是陣列或null 先看個demo var reg d var str hua123hua456 var result reg.exec str console.dir result 123 index 3,input hua123hua456 console.log ...

正則的捕獲

正則的捕獲 exec,返回的結果是陣列或null 先看個demo var reg d var str hua123hua456 var result reg.exec str console.dir result 123 index 3,input hua123hua456 console.log ...