gpt4 book ai didi

javascript - 分区 "contenteditable": get and delete word preceding caret

转载 作者:搜寻专家 更新时间:2023-10-31 21:49:43 24 4
gpt4 key购买 nike

感谢this question和 Tim Down 发布的答案,我做了一个函数来获取“contenteditable”div 中插入符号前面的词。

这是一个 fiddle ,这是函数:

function getWordPrecedingCaret (containerEl) {
var preceding = "",
sel,
range,
precedingRange;
if (window.getSelection) {
sel = window.getSelection();
if (sel.rangeCount > 0) {
range = sel.getRangeAt(0).cloneRange();
range.collapse(true);
range.setStart(containerEl, 0);
preceding = range.toString();
}
} else if ((sel = document.selection) && sel.type != "Control") {
range = sel.createRange();
precedingRange = range.duplicate();
precedingRange.moveToElementText(containerEl);
precedingRange.setEndPoint("EndToStart", range);
preceding = precedingRange.text;
}
var lastWord = preceding.match(/(?:\s|^)([\S]+)$/i);
if (lastWord) {
return lastWord;
} else {
return false;
}
}

我的问题:一旦得到最后一个词,我怎样才能将它从 div 中删除?请注意,我不想删除 div 中出现的任何单词,只删除插入符号之前的单词。

提前致谢!

最佳答案

您可以尝试使用 match()index 属性

var lastWordPosition = preceding.match(/(?:\s|^)([\S]+)$/i).index;

然后你可以做一个 substring(0, lastWordPosition) 或任何你想要的......

关于javascript - 分区 "contenteditable": get and delete word preceding caret,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24890130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com