正則的replace方法詳解

2021-09-26 06:35:07 字數 2342 閱讀 1048

mdn解釋: 返回乙個由替換值替換一些或所有匹配的模式後的新字串。

使用以下值作為替換引數

序列變數名

代表的值1$$

插入乙個 「$」2$&

插入匹配的子串3$`

插入當前匹配的子串左邊的內容4$』

插入當前匹配的子串右邊的內容5$n

例項講解$$

let str = "abcdefg123";

let rg = /([a-za-z]+)/g;

console.log(str.replace(rg, '$$')); // 輸出:$123

解析:rg匹配到abcdefg,所以將該串替換為$

$&

let str = "123abcd123efgh";

let rg = /([a-za-z]+)/g;

console.log(str.replace(rg, '.$&')); //輸出:123.abcd123.efgh

解析:rg匹配到abcd並將其插入,且前面帶乙個.和efgh同樣前面也帶個.3. $`

let str = "*|abcd()";

let rg = /([a-za-z]+)/g;

console.log(str.replace(rg, '.$`')); //輸出:*|.*|()

let str = "*|abcd()aaaa";

let rg = /([a-za-z]+)/g;

console.log(str.replace(rg, '.$`')); //輸出:*|.*|().*|abcd()

解析

第乙個,rg匹配到abcd,所以將其左邊的所有字串插入匹配的字串位置,前面有*|,所以就會將abcd替換為.*|

第二個,rg首先匹配到abcd所以將其替換為.*|,繼續向後又匹配到aaaa,此時前面有.*|abcd(),所以就將aaaa替換為.*|abcd()

4. $』

let str = "*|abcd()";

let rg = /([a-za-z]+)/g;

console.log(str.replace(rg, ".$'")); //輸出:/*|.()()

解析:rg匹配到abcd,其右邊的內容為(),所以就會將abcd替換為()5. $n

let str = "*|abcd2345";

let rg = /([a-za-z]+)([0-9]+)/g;

console.log(str.replace(rg, '.$1')); //輸出:*|.abcd

console.log(str.replace(rg, '.$2')); //輸出:*|.2345

解析

第乙個,rg匹配到abcd2345,然後尋找第乙個括號匹配的字串,匹配到abcd,所以就將abcd2345替換為.abcd

第二個,rg匹配到abcd2345,然後尋找第二個括號匹配的字串,匹配到2345,所以就將abcd2345替換為.2345

使用函式作為引數

當匹配執行後,該函式就會執行。 函式的返回值作為替換字串。

引數:replacer(match, p1, p2, p3, offset, string)

replace中的正則

replace 把原有的字元替換成新的字元 var str pku2016pku2017 str str.replace pku pkusoft console.log str pkusoft2016pku2017在不使用正則的情況下,每次執行只能替換乙個字元,每次執行都是從0開始替換,有重複的,無...

正規表示式replace方法應用

一 replace方法介紹 replace方法使用表示式模式對字串執行搜尋,並對搜尋到的內容用指定的字串替換,返回乙個字串物件,包含了替換後的內容。語法 replace rgexp.replacetext replace方法執行後,將更新regexp物件中的有關靜態屬性以反映匹配情況。該方法需要兩個...

模仿replace方法

替換,注意 key只能是佔位符,不可以是數字,key 和 val 不可以相等,val中也不可以包含key,否則會發生自己替換自己的現象,但不會出現死迴圈 private static string handlereplace string model,string key,string val if...