Lets sagen, ich habe einen Satz: "Dies ist ein Testsatz." Ich möchte, dass ein Benutzer Unterabschnitte des Textes auswählen kann, jedoch ohne Interpunktion oder unvollständige Wörter.Wie ausgewählter Text erweitert werden, um ganze Wörter zu enthalten
So "Testsatz." werden "Testurteil" und "est sentenc" auch "Testsatz" sollte
werdenHier ist meine aktuellen Code ist:
var getSelectedText = function() {
var text = "";
if (window.getSelection) {
text = window.getSelection().toString().trim();
} else if (document.selection && document.selection.type != "Control") {
text = document.selection.createRange().text;
}
return text;
}
FYI: jQuery-Code ist in Ordnung.
EDIT für Bender:
Ok das ist fast da. Ich habe mehr als 50k Sätze und die Benutzerauswahl ist variabel, so dass ich, so etwas zu tun haben:
var selection = getSelectedText();
var exp = new RegExp("\\w*" + selection + "\\w+");
text.match(exp);
Dies wird jedoch nicht überein, wenn ein Benutzer „Testurteil“ auswählt, die eher als nicht.
Ich würde eine Regex verwenden, um das gesamte Wort zu entsprechen. Dies ist ein grundlegendes Beispiel: https://regex101.com/r/xW0mR8/1 Sie müssen es verbessern, damit es mit jedem Auswahlfall richtig funktioniert – BeNdErR
@BeNdErR Clever! :) – Nico
@BeNdErR Bitte sehe meine Bearbeitung. –