Javascript 替换第n次出现的字符串
例如:Javascript 替换第n次出现的字符串,javascript,regex,Javascript,Regex,例如: 'abcjkjokabckjk'.replace('/(abc)/g',...) 如果我想替换指定的职位“abc”,我能做什么 像这样: 使用RegExp构造函数在regex中传递变量 var s='abcjkjokabckjk' 搜索='abc' 变量n=2 警报(s.replace(RegExp(“^(?:*abc){”+n+“}”)、函数(x){return x.replace(RegExp(search+“$”,“HHHH”)})这可以在没有RegEx的情况下完成 字符串方法
'abcjkjokabckjk'.replace('/(abc)/g',...)
如果我想替换指定的职位“abc”,我能做什么
像这样:
使用
RegExp
构造函数在regex中传递变量
var s='abcjkjokabckjk'
搜索='abc'
变量n=2
警报(s.replace(RegExp(“^(?:*abc){”+n+“}”)、函数(x){return x.replace(RegExp(search+“$”,“HHHH”)})
这可以在没有RegEx的情况下完成
字符串方法,可与
var字符串='abcde | abcde | abcde | abcde',
指针='abc',
firstIndex=string.indexOf(指针),
lastIndex=字符串。lastIndexOf(指针);
// ----------------------------------------------------------------
//删除第一次出现
var first=string.substring(0,firstIndex)+'***'+string.substring(firstIndex+pinder.length);
document.getElementById('first')。innerHTML=first;
// ----------------------------------------------------------------
//删除上次发生的事件
var last=string.substring(0,lastIndex)+'***'+string.substring(lastIndex+pinder.length);
document.getElementById('last')。innerHTML=last;
// ----------------------------------------------------------------
//删除第n次出现
//对于演示:删除第二次出现
var counter=2,//从零开始的索引
n指数=0;
如果(计数器>0){
而(计数器--){
//获取下一个事件的索引
nThIndex=字符串.indexOf(针,nThIndex+针.长度);
}
//这里的'nThIndex'将是第n次出现的索引
}
var second=string.substring(0,n次索引)+'***'+string.substring(n次索引+指针.length);
document.getElementById('second')。innerHTML=second代码>
表tr td:n子项(2){
颜色:绿色;
}
运输署{
填充:15px;
}
第一次发生时更换后:
更换上次发生的后:
替换2ndzero基索引后发生:
使用Avinash对RegExp构造函数的方法
const replace_nth = function (s, f, r, n) {
// From the given string s, replace f with r of nth occurrence
return s.replace(RegExp("^(?:.*?" + f + "){" + n + "}"), x => x.replace(RegExp(f + "$"), r));
};
下面是一个例子
$node
Welcome to Node.js v13.1.0.
Type ".help" for more information.
>
> const replace_nth = function (s, f, r, n) {
... // From the given string s, replace f with r of nth occurrence
... return s.replace(RegExp("^(?:.*?" + f + "){" + n + "}"), x => x.replace(RegExp(f + "$"), r));
...};
> replace_nth('hello world', 'l', 'L', 1)
'heLlo world'
您想替换第二次出现的abc
?不只是第二次,如果字符串由许多“abc”组成,如何替换我自己指定的“abc”?如何替换?你应该分享条件来找到这个特定的“abc”。例如:第二个,最后一个,或者是“z”后面的“abc”可能我的问题不清楚。例如:有一个字符串“abcsfdsfabcksfabc”,这个字符串中有三个“abc”,如果我想替换这个字符串中的一个特定位置“abc”,我能做什么?太好了!!你也可以在RegExp中使用needlesearch