字符串replace()方法

找出有關字符串的JavaScript replace()方法的全部信息

找到第一的發生str1在當前字符串中並將其替換為str2

返回一個新字符串,而不改變原始字符串。

'JavaScript'.replace('Java', 'Type') //'TypeScript'

您可以通過正則表達式作為第一個參數:

'JavaScript'.replace(/Java/, 'Type') //'TypeScript'

replace()只會取代第一的發生,除非您使用正則表達式作為搜索字符串,並且您指定了全局(/g) 選項:

'JavaScript JavaX'.replace(/Java/g, 'Type') //'TypeScript TypeX'

第二個參數可以是一個函數。找到匹配項時(或對於每一個如果使用全局正則表達式則匹配foundm/g),並帶有多個參數:

  • 與模式匹配的字符串
  • 一個整數,指定匹配發生在字符串中的位置
  • 字符串

函數的返回值將替換字符串的匹配部分。

例子:

'JavaScript'.replace(/Java/, (match, index, originalString) => {
  console.log(match, index, originalString)
  return 'Test'
}) //TestScript

這也適用於常規字符串,而不僅僅是正則表達式:

'JavaScript'.replace('Java', (match, index, originalString) => {
  console.log(match, index, originalString)
  return 'Test'
}) //TestScript

如果您的正則表達式有奪取團體,這些值將在match參數之後作為參數傳遞:

'2015-01-02'.replace(/(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/, (match, year, month, day, index, originalString) => {
  console.log(match, year, month, day, index, originalString)
  return 'Test'
}) //Test

免費下載我的JavaScript初學者手冊


更多js教程: