var str1 = '小猫爱吃鱼,爱睡觉'
var str2 = str1.replace('爱','不爱')
str2 "小猫不爱吃鱼,爱睡觉"
发现只会替换第一个匹配项,需要替换全部
var str1 = '小猫不爱吃鱼,不爱睡觉'
var reg=new RegExp("不爱","g")
var str2=str1.replace(reg,"爱")
小猫爱吃鱼,爱睡觉
搜索时候关键词会高亮显示
var str="中华人民共和国,中华人民共和国"
var newstr=str.replace(/(人)/g,"<font color=red>$1</font>")
// $1表示的就是左边表达式中括号内的字符,即第一个子匹配
// $2表示第二个子匹配
函数内部有个 arguments集合
// 在函数内部有个 arguments集合 这个集合存储了当前函数的所有参数
function test(){
for (let i = 0; i < arguments.length; i++) {
let val = arguments[i];
console.log('参数 '+i+' 的值为: '+val)
}
}
test('a','b')
参数 0 的值为: a
参数 1 的值为: b
replace第二个参数传个回掉函数
function test(){
for (let i = 0; i < arguments.length; i++) {
let val = arguments[i];
console.log('参数 '+i+' 的值为: '+val)
}
}
var reg=new RegExp("\\d","g") // \\d == /\d/g
var str="abd1afa4sdf"
str.replace(reg,test)
参数 0 的值为: 1 // 匹配到的字符
参数 1 的值为: 3 // 匹配时的字符最小索引位置
参数 2 的值为: abd1afa4sdf // 匹配的字符串
参数 0 的值为: 4
参数 1 的值为: 7
参数 2 的值为: abd1afa4sdf
// 例如下面一个例子
var str="他今年22岁,她今年20岁"
function test($1){
var gyear=(new Date()).getYear()-parseInt($1)+1
return $1+"("+gyear+"年出生)"
}
var reg=new RegExp("(\\d+)岁","g")
var newstr=str.replace(reg,test)
console.log(str) // 他今年22岁,她今年20岁
console.log(newstr) // 他今年22岁(99年出生),她今年20岁(101年出生)