找出所有关于字符串的JavaScript replace()方法
找到当前字符串中第一次出现的str1 ,并将其替换为str2 。
返回一个新的字符串,而不改变原来的字符串。
'JavaScript'.replace('Java', 'Type') //'TypeScript'
你可以传递一个正则表达式作为第一个参数。
'JavaScript'.replace(/Java/, 'Type') //'TypeScript'
replace() 将只替换第一次出现的字符串,除非你使用正则表达式作为搜索字符串,并且你指定了全局 ( ) 选项。/g
'JavaScript JavaX'.replace(/Java/g, 'Type') //'TypeScript TypeX'
第二个参数可以是一个函数。这个函数将在找到匹配的时候被调用(如果使用全局的regex/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
如果你的regex有捕获组,这些值将作为参数在匹配参数之后传递。
'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