给定偏移量,使用javascript将跨度添加到文本字符串

给定偏移量,使用javascript将跨度添加到文本字符串,javascript,Javascript,我有字符串,称之为包含一些文本的,比如 var s = 'The cat in the hat'; 我知道“猫”从4开始,以6结束。添加跨度的最佳方法是什么,这样我就可以 'The <span id='myid'>cat</span> in the hat.' “帽子里的猫。” 有没有什么HTMLDOM解析神奇的机器可以做到这一点?假设我从纯文本开始。链接到重复的答案将不胜感激 更新请注意,我可能需要插入多个跨度。因此,我必须以某种方式记住原始字符串,才能将其重新组

我有字符串,称之为包含一些文本的,比如

var s = 'The cat in the hat';
我知道“猫”从4开始,以6结束。添加跨度的最佳方法是什么,这样我就可以

'The <span id='myid'>cat</span> in the hat.'
“帽子里的猫。”
有没有什么HTMLDOM解析神奇的机器可以做到这一点?假设我从纯文本开始。链接到重复的答案将不胜感激

更新请注意,我可能需要插入多个跨度。因此,我必须以某种方式记住原始字符串,才能将其重新组合起来。例如,考虑到我也有坐标来插入“帽子”的跨度。 Update2我想强调的是,有很多替代类型的解决方案,例如,我从偏移量开始

[[4,6],[16,18]]要向中添加跨距,可以使用:

var s='帽子里的猫';
var关键字=['cat','hat'];
对于(var i=0;i
尝试这样替换

var s = 'The cat in the hat'
s.replace(s.substring(4,7),'<span id="myid">' + s.substring(4,7) + '</span>');
var s='帽子里的猫'
s、 替换(s.子串(4,7),“+s.子串(4,7)+”);

替换'cat''hat' 使用方法如下:

var s = 'The cat in the hat';
var arr = ['cat', 'hat'];

for (var i=0; i < arr.length; i++) {
    s = s.replace(new RegExp(arr[i],"g"),'<span id="myid">' + arr[i] + '</span>');
}
var s='帽子里的猫';
var arr=['cat','hat'];
对于(变量i=0;i
在这条路上

var s = 'The cat in the hat';
var newStr = '';
​var strArr = s.split(" ");
for (i=0;i<strArr.length;i++){
    alert(strArr[i]);
    if(strArr[i] == 'cat'){
        newStr  += ' <span>' + strArr[i] + '</span>';    
    }else{
            newStr  += ' ' + strArr[i];
    }       
}
alert(newStr);
​
var s='帽子里的猫';
var newStr='';
​var strArr=s.split(“”);

对于(i=0;i@Tooraj否,仅第一个。您需要使用全局标志替换所有:
s=s.replace(新的RegExp(关键字[i],'g'),'$&'));
如果替换第二个“cat”?顺便说一句,我已经知道了每个单词的位置,例如4-6,但不知道单词是什么。如果替换第二个“cat”?或帽子?我想这看起来越来越恶心。@Tooraj要替换字符串中的所有cat,请使用以下代码:
s replace(/cat/gi,“+”cat“+”;
您也可以这样使用:
s.replace(新的RegExp(s.substring(4,7),“g”),“+”cat“+”;
var s = 'The cat in the hat';
var newStr = '';
​var strArr = s.split(" ");
for (i=0;i<strArr.length;i++){
    alert(strArr[i]);
    if(strArr[i] == 'cat'){
        newStr  += ' <span>' + strArr[i] + '</span>';    
    }else{
            newStr  += ' ' + strArr[i];
    }       
}
alert(newStr);
​