我使用这个javascript代码抓住插入符号前面的单词:
sel = window.getSelection()
var selectedRange = sel.getRangeAt(0);
sel.collapseToStart();
sel.modify("move", "backward", "word");
sel.modify("extend", "forward", "word");
这就得到了这个词,即使没有尾随空格(例如"单词")但是在单词的末尾省略了特殊字符(例如,而不是"单词:&# 34; 只是" word" )。
如果我在一个单词中包含冒号,例如" wo:rd",则会得到所有5个字符。
但我真的需要得到尾随的特殊字符。我怎么能这样做?
答案 0 :(得分:0)
我明白了,我为示例代码的邋iness道歉,但这里是: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;
}
});