继承人html - :
<div contenteditable="true">I am a good person</div>
现在我如何使用段落标记包装以index 7 to index 17
开头的子字符串,以便结果如下所示 - :<div contenteditable="true">I am a <p>good person</p> </div>
答案 0 :(得分:1)
Somethinng喜欢:
function wrapSubstring(sourceString, subString, tag) {
return sourceString.replace(new RegExp("(" + subString + ")", "g"), "<" + tag" + ">$1</" + tag + ">");
}
上面将替换sourceString中的所有subString实例。
<强> 重要 强> 如果subString可以包含任意文本,则需要引用subString。 请参阅:How to escape regular expression in javascript?
一个不那么通用的实现:
// Wrap a subString of sourceString with the given tag
// starting at startIndex(inclusive) and going to endIndex(exclusive)
function wrapSubstring(sourceString, tag, startIndex, endIndex) {
return sourceString.substring(0, startIndex)
+ "<" + tag + ">"
+ sourceString.substring(startIndex, endIndex)
+ "</" + tag + ">"
+ (endIndex ? sourceString.substring(endIndex) : "");
}
以下是使用jquery的示例调用:
var $element = $('#someId');
$element.html(wrapSubstring($element.html(), 'p', 7, 17);