Javascript:包括特殊字符的文本选择

Javascript: text selection including special characters

本文关键字:文本 选择 特殊字符 包括 Javascript      更新时间:2023-09-26

我使用这个javascript代码来获取插入符号前面的单词:

sel = window.getSelection()
var selectedRange = sel.getRangeAt(0);
sel.collapseToStart();
sel.modify("move", "backward", "word");
sel.modify("extend", "forward", "word");

这会得到单词,即使没有尾随空格(例如"word"),但会省略单词末尾的特殊字符(例如,代替"word:"只得到"word")。

如果我在一个单词中包含冒号,比如"wo:rd",这将得到所有5个字符。

不过,我真的需要使用尾随的特殊字符。我该怎么做?

我明白了,我为示例代码的草率道歉,但这里是:jsFiddle

var i = 0;
function getBeforeSelection() {
    var sel = window.getSelection(),
        selectedRange = sel.getRangeAt(0),
        sel2,
        res,
        finalValue,
        regexObj;
    sel.collapseToStart();
    sel.modify("move", "backward", "word");
    sel.modify("extend", "forward", "word");
    finalValue = sel.toString();
    regexObj = new RegExp(finalValue + '[^A-Za-z0-9's'b]*');
    res = sel.focusNode.nodeValue.trim().match(regexObj);
    alert(res);
}
// added for sake of example, calls getBeforeSelection on double click 
// (when selection is made)
document.addEventListener('click', function (e) {
    i++;
    if (i > 1) {
        getBeforeSelection();
        i = 0;
    } 
});