Trouver une partie de mot avant le caret dans la zone de texte

J'ai un plugin jQuery qui trouve la position du caret d'une zone de texte. Je l'implémente sur la fonction de touche de la zone de texte, comme ceci:

$("#editor").keyup(function () { var textbox = $(this); var end = textbox.getSelection().end; }); 

Je veux trouver le mot, ou partie d'un mot, avant le caret. Les mots sont délimités par n'importe quel type d'espace blanc.

Ma principale difficulté à faire cela concerne les casse-ligne. Comment puis-je trouver le mot ou la partie d'un mot immédiatement avant le caret compte tenu de l'indice de caractère du caret?

Si vous utilisez mon plug-in jQuery textarea pour cela, les positions des caractères de sélection sont toujours relatives à la propriété de value de la zone de texte, peu importe la façon dont le navigateur gère les sauts de ligne. Vous pourriez alors obtenir le dernier mot comme suit:

Notez que vous devez utiliser la value propriété textarea et non la méthode val() de jQuery, qui normalise les sauts de ligne.

 $("#editor").keyup(function () { var textbox = $(this); var end = textbox.getSelection().end; var result = /\S+$/.exec(this.value.slice(0, end)); var lastWord = result ? result[0] : null; alert(lastWord); });