Div “contenteditable”: obtener y eliminar la palabra precedente caret

Gracias a esta pregunta y respuesta publicada por Tim Down, realicé una función para obtener la palabra que precede a caret en una div “contenteditable“.

Aquí hay un violín , y aquí está la función:

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; } } 

Mi pregunta: una vez que recibí la última palabra, ¿cómo puedo eliminarla del div? Tenga en cuenta que no quiero eliminar ninguna ocurrencia de la palabra en el div, solo el evento que precede al cursor.

¡Gracias de antemano!

Podría intentar usar la propiedad index de match()

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

Entonces puedes hacer una substring(0, lastWordPosition) o lo que quieras …