2

我有一个这样的字符串:

我是一根不太长但也不太短的弦

让我们看一下字符串中的单词“not”:它从第 13 号位置开始,到第 16 号位置结束。

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

<b>not</b>

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

4

3 回答 3

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));
于 2012-06-06T14:07:58.450 回答
1

当您只知道起始位置时,此答案用于替换

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

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

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

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

此外,您实际上并不需要 jQuery。

于 2012-06-06T14:02:05.543 回答
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/

于 2012-06-06T14:31:39.713 回答