javascript中的replace方法

1.replace

調用方法str.replace(regexp|substr, newSubStr|function)javascript

  • regexp,正則表達式java

  • substr,須要被替換的字符串正則表達式

  • newSubStr,用於替換的字符串函數

  • function,一個用於建立新字符串的函數spa

1.1 當第一個參數爲字符串的時候,只替換第一個匹配的項
var text = 'cat,bat,sat,fat'
var result = text.replace('at','ut') // cut,bat,sat,fat
1.2 替換字符串能夠插入下面的特殊變量名
  • $$ 插入一個$code

  • $& 插入匹配的子串regexp

  • $` 插入當前匹配的子串左邊的內容對象

  • $' 插入當前匹配的子串右邊的內容blog

  • $n 假設第一個參數是RegExp對象,而且n是個小於100的非負整數,那麼插入的是第n個括號匹配的字符串ip

var text = 'cat,bat,sat,fat'
text.replace('at','$`') // cc,bat,sat,fat
text.replace('at','$\'') // c,bat,sat,fat,bat,sat,fat
text.replace(/(a)(t)/,'$1') // ca,bat,sat,fat
text.replace(/(a)(t)/,'$2') // ct,bat,sat,fat
1.3 第二個參數爲函數

若是第二個參數爲函數,若是匹配成功,函數就會執行,函數的返回值做爲替換字符串。$特殊變量名將不能使用。若是第一參數是正則表達式,而且是全局模式,那麼這個方法會被調用屢次,每次匹配都會被調用

函數參數以下:

  • match 匹配的字符串,對應$&

  • p1,p2……,若是第一個參數是RegExp對象,則表明第n個括號匹配的字符串,對應$1,$2……

  • offset 匹配的字符串在原字符串中的偏移量

  • string 被匹配的原字符串

var text = 'cat,bat,sat,fat'
var result = text.replace(/(a)(t)/g,function(...args){
	console.log(args)
})
console.log('result:', result)

// 輸出結果
// ["at", "a", "t", 1, "cat,bat,sat,fat"]
// ["at", "a", "t", 5, "cat,bat,sat,fat"]
// ["at", "a", "t", 9, "cat,bat,sat,fat"]
// ["at", "a", "t", 13, "cat,bat,sat,fat"]
// result: cundefined,bundefined,sundefined,fundefined  由於我沒有返回值,因此是undefined
相關文章
相關標籤/搜索