js 目标字符串在另一个字符串中第n次出现时替换
var str = `关关雎鸠,在河之洲。
窈窕淑女,君子好逑。
参差荇菜,左右流之。
窈窕淑女,寤寐求之。
求之不得,寤寐思服。
悠哉悠哉,辗转反侧。
参差荇菜,左右采之。
窈窕淑女,琴瑟友之。
参差荇菜,左右芼之。
窈窕淑女,钟鼓乐之。`
var num = 2
var cha = '窈窕淑女'
var fillTxt= '__1__'
如何将str第二个窈窕淑女替换成__1__
结果
关关雎鸠,在河之洲。窈窕淑女,君子好逑。
参差荇菜,左右流之。
__1__,寤寐求之。
求之不得,寤寐思服。
悠哉悠哉,辗转反侧。
参差荇菜,左右采之。
窈窕淑女,琴瑟友之。
参差荇菜,左右芼之。
窈窕淑女,钟鼓乐之。
回答:
=
回答:
举个例子:请看代码,matchStr表示匹配到的字符,index表示位于字符串的位置,str就是完整的字符串
var appearNum=0 // 记录字符串出现次数"121".replace(/1/g,function(matchStr,index,str){
console.log(matchStr,index,str);
if(matchStr==="1"){
appearNum++
}
if(appearNum==2){
return "_"
}else{
return matchStr
}})
回答:
https://codepen.io/1567887123...
var str = `关关雎鸠,在河之洲。
窈窕淑女,君子好逑。
参差荇菜,左右流之。
窈窕淑女,寤寐求之。
求之不得,寤寐思服。
悠哉悠哉,辗转反侧。
参差荇菜,左右采之。
窈窕淑女,琴瑟友之。
参差荇菜,左右芼之。
窈窕淑女,钟鼓乐之。`;
var num = 2;
var cha = "窈窕淑女";
var fillTxt = "__1__";
// 替换匹配位置的文本
function replaceIndex(str, cha, num, fillTxt) {
var s = [...str.matchAll(new RegExp(cha, "g"))][num - 1];
return (
s.input.substring(0, s.index) +
fillTxt +
s.input.substring(s.index + fillTxt.length - 1)
);
}
document.querySelector("#topic").innerText = replaceIndex(str, cha, num, fillTxt);
document.querySelector("#result").innerText = cha;
回答:
str.replace(new RegExp(`((?:${cha}(?:\\s|\\S)*?){${num - 1}})${cha}`), `$1${fillTxt}`)
回答:
[...'strstrstr'.matchAll('str')] .map((item, idx) => (idx === 1 ? 'abc' : item[0]))
.join('');
// => strabcstr
以上是 js 目标字符串在另一个字符串中第n次出现时替换 的全部内容, 来源链接: utcz.com/p/935512.html