Javascript 如何使用子字符串而不是替换

Javascript 如何使用子字符串而不是替换,javascript,replace,Javascript,Replace,现在我可以得到div中的字符串位置,如下所示 getRange(){ var selection = window.getSelection(); var range = selection.getRangeAt(0); var range_clone = range.cloneRange(); range_clone.selectNodeContents(document.getElementById("test")); range_clone.setEnd(range.startContai

现在我可以得到div中的字符串位置,如下所示

getRange(){
var selection = window.getSelection();
var range = selection.getRangeAt(0);
var range_clone = range.cloneRange();
range_clone.selectNodeContents(document.getElementById("test"));
range_clone.setEnd(range.startContainer, range.startOffset);
var start = range_clone.toString().length;
range_clone.setEnd(range.endContainer, range.endOffset);
var end = range_clone.toString().length;
return {
  start : start,
  end: end
};
<div id="test"><b>abc</b></div>
它将返回,但不会返回粗体的abc

如何使其排除标记并仅返回字符串部分

我这样做是因为现在abc是粗体的,我想使用子字符串取消绑定用户选择。我知道我可以使用string.replace做同样的事情,但是string.replace只替换第一次出现的内容。它不允许我替换特定的位置

如何使用string.substring执行此操作

提前谢谢你的帮助

更新

为了明确我的目的,我制作了一个文本编辑器,允许用户通过选择字符串来取消绑定

例如,他们有请帮助我,我被卡住了

然后他们选择帮助我

它应该能够插入周围的帮助我,这成为

请帮帮我,我卡住了


所以它帮了我的忙。

你正在用一种非常笨拙的方式进行文本提取

要获取JavaScript中的全部内容,您只需:

var test=document.getElementById'test'; console.logtest.innerHTML;
abc搜索如何获取html元素shi@dnit13中的文本我可以使用$test.text获得它,但这不会保留html标记,我想保留html格式,但只更改选定的字符串。嗨,谢谢你的回答。实际上,我正在制作一个文本编辑器,我想让用户只需选择它就可以解除绑定。如果他们选择粗体的字符串,我想得到字符串在div中的位置,然后用。例如:。。。一些字符串选择了一些其他字符串以取消所选字符串的绑定。如何将您的想法与此结合?您实际上不想在字符串周围添加标签。相反,您希望使用CSS属性font-weight。幸运的是,这可以通过JavaScript应用。我更新了我的答案,展示了如何做到这一点:嘿,是的,这给了我一个想法。我会试试看。如果用户不希望整个字符串是正常的,而只希望该字符串中的一些字母是正常的,而让其他字母保持粗体,该怎么办?再次感谢您:您可能需要使用substring,或者更好的是,应用一个只包含目标字母的标记。然后,您可以使用相同的原则来定位标记。标记以内联方式显示在块中,因此它们将保留格式:一旦您确认此解决方案解决了您的问题,请不要忘记通过单击投票按钮下方的灰色复选框将解决方案标记为正确-这会将其从“未回答问题”队列中删除,并将声誉授予提问者和回答者。当然,在说这句话时,你没有义务将我的答案或任何其他答案标记为正确,尽管这确实有助于保持事情的顺利进行:
$("#test").html().substring(0, 3)