我有一个这样的字符串:
我的字符串不会太长,但也不会那么短
让我们在字符串中加上“not”这个词:它从第13位开始,在第16位结束。
有一种方法可以用JQuery替换位置13和位置16之间的单词:
<b>not</b>
我只知道我要替换的字符串的位置而不是它的内容。
答案 0 :(得分:4)
你可以使用优秀的老式JavaScript来实现这一点,但是你可以使用jQuery进行DOM操作(尽管你没有拥有)。
内容:
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));