字串正則替換replace第二個引數是函式的問題

2021-08-29 10:21:13 字數 582 閱讀 3766

按照js高程的說法,如下

replace()方法的第二個引數也可以是乙個函式。在只有乙個匹配項(即與模式匹配的字串)的情況下,會向這個函式傳遞3個引數:模式的匹配項、模式匹配項在字串中的位置和原始字串。在正規表示式中定義了多個捕獲組的情況下,傳遞給函式的引數依次是模式的匹配項、第乙個捕獲組的匹配項、第二個捕獲組的匹配項......,但最後兩個引數仍然分別是模式的匹配項在字串中的位置和原始字串。

高程的這種描述是有問題的,根據高程理解,若函式引數只有2個引數,那這兩個引數應分別是模式的匹配項在字串中的位置和原始字串。其實,這這兩個引數還是模式的匹配項、第乙個捕獲組的匹配項。內部實現應該是用了arguments[0]、arguments[1]。下面這2段**可以進行理解。

var tourl = 'user/add?id=$18&t=update'.replace(/\$(\d+)/g, function (a, b) );
var tourl = 'user/add?id=$18&t=update'.replace(/\$(\d+)/g, function (a, b, c, d) );

replace 實現字串替換 字串

字串是 不可改變 的,我們通過可以獲取字串指定位置的字元,但不能使用更改指定位置的字元,一旦更改,就會報錯。a abcedfghijklmnopqrstuvwxyz a 3 a traceback most recent call last file line 1,in a 3 a typeerro...

MYSQL替換字串函式 replace

前段時間把 換了個網域名稱,結果發現資料庫很多記錄裡面都含有之前 的 因為 用到的資料庫是mysql資料庫,所以用mysql的replace函式很容易就可以把原來的 都替換成新的 update table name set fielda replace fielda,要替換的 新 update go...

python 字串替換 正則

因為看電影字幕有些不必要的想刪除,此段 用於刪除 內的內容。python 中 string的replace函式並不能直接使用 正規表示式,所以我們採取compile的方式 其中re為正則的標準庫。此段 包含 1.檔案的讀入輸出 2.正規表示式的使用 import re out open g and....