Jquery,给定一个字符串,它的坐标代替它

时间:2012-06-06 13:51:23

标签: jquery

我有一个这样的字符串:

  

我的字符串不会太长,但也不会那么短

让我们在字符串中加上“not”这个词:它从第13位开始,在第16位结束。

有一种方法可以用JQuery替换位置13和位置16之间的单词:

<b>not</b>

我只知道我要替换的字符串的位置而不是它的内容。

3 个答案:

答案 0 :(得分:4)

你可以使用优秀的老式JavaScript来实现这一点,但是你可以使用jQuery进行DOM操作(尽管你没有拥有)。

http://jsfiddle.net/hQUhX/

内容:

function replacePiece(str, start, end) {
   var component = str.substr(start, end - start);
   var newstr = str.substr(0,13) + "<b>" + component + "</b>"
      + str.substr(end);
   return newstr;
}

​$("#Str").html(replacePiece($("#Str").text(), 13, 16));

答案 1 :(得分:1)

当你只知道STARTING职位

时,这个答案就是替换

我最终做的是回答基于只知道起始位置,而不是单词的结束位置。

这样做是从已知起始位置抓取字符串,用空格分割,然后用<b>包装第一个单词,然后将其添加回字符串和输出之间。

JSFiddle示例 http://jsfiddle.net/Jc829/4/

很抱歉第一次没有多注意。

另外,你真的不需要jQuery。

答案 2 :(得分:0)

虽然我接受了Explosion Pills的回答,但我认为这是一种更加精致的方法(感谢Matthew Riches的链接)

String.prototype.replacePiece = function(replace_with, start, end) {
    return this.substring(0, start) + replace_with + this.substring(end, this.length)
}

var str = "Helloiworld";

var replace_with = "<b>i</b>";

alert(str.replacePiece(replace_with, 5, 6));​​

http://jsfiddle.net/paglia_s/QTMJG/