String.replace使用技巧


relace

replace() 方法返回一個由替換值替換一些或所有匹配的模式后的新字符串。模式可以是一個字符串或者一個正則表達式, 替換值可以是一個字符串或者一個每次匹配都要調用的函數。

使用字符串作為參數


變量名	代表的值
$$	插入一個 "$"。
$&	插入匹配的子串。
$`	插入當前匹配的子串左邊的內容。
$'	插入當前匹配的子串右邊的內容。
$n	假如第一個參數是 RegExp對象,並且 n 是個小於100的非負整數,那么插入第 n 個括號匹配的字符串。提示:索引是從1開始
var re = /(\w+)\s(\w+)/;
var str = "John Smith";
var newstr = str.replace(re, "$2, $1");
// Smith, John
console.log(newstr);

指定一個函數作為參數

變量名	代表的值
match	匹配的子串。(對應於上述的$&。)
p1,p2,  假如replace()方法的第一個參數是一個RegExp 對象,則代表第n個括號匹配的字符串。(對應於上述的$1,$2等。)例如, 如果是用 /(\a+)(\b+)/這個來匹配, p1就是匹配的 \a+,  p2 就是匹配的 \b+。
...	

offset	匹配到的子字符串在原字符串中的偏移量。(比如,如果原字符串是“abcd”,匹配到的子字符串是“bc”,那么這個參數將是1)

string	被匹配的原字符串。
function replacer(match, p1, p2, p3, offset, string) {
  // p1 is nondigits, p2 digits, and p3 non-alphanumerics
  return [p1, p2, p3].join(' - ');
}
var newString = 'abc12345#$*%'.replace(/([^\d]*)(\d*)([^\w]*)/, replacer);
console.log(newString);  // abc - 12345 - #$*%


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM