Frage

Ich brauche innerhalb eines Telerik RadEditor Kontrolle auf einer ASPX-Seite als ein Benutzer die automatische Großschreibung zu implementieren.

Dies kann eine IE-spezifische Lösung (IE6 +) sein.

ich erfassen derzeit jeden Tastendruck (unten / oben) während der Benutzer tippt eine separate Funktion zu unterstützen „Makros“ genannt, die im Wesentlichen kurze Stichworte, die in formatierten Text erweitern. das heißt das Makro „so“ könnte Auto erweitern auf Leertaste auf „Stackoverflow“.

Das heißt, ich Zugriff auf die keyCode Informationen haben, wie auch ich die Textrange Methoden bin mit einem Wort wählen ( „so“), und es erweitert zu „Stackoverflow“. So habe ich einige semblence des Kontextes.

Ich brauche aber diesen Zusammenhang zu überprüfen, um zu wissen, ob ich Auto-Kapital zu schlagen. Dies muss auch unabhängig davon arbeiten, ob ein Makro beteiligt ist.

Da ich Tastenanschläge für die Makros Überwachung soll ich überwache nur für Interpunktion (es ist mehr als nur Perioden, die ein Großbuchstaben-Signal) und Auto-Kappe des nächsten Buchstaben eingegeben hat, oder sollte ich verwenden Textrange und Kontext analysieren?

War es hilfreich?

Lösung

Ich bin nicht sicher, ob dies ist, was Sie versuchen, zu tun, aber hier ist eine Funktion ( Referenz ) einen angegebenen String in Titel Fall konvertieren:

function toTitleCase(str) {
    return str.replace(/([\w&`'‘’"“.@:\/\{\(\[<>_]+-? *)/g, function(match, p1, index, title){ // ' fix syntax highlighting
        if (index > 0 && title.charAt(index - 2) != ":" && 
            match.search(/^(a(nd?|s|t)?|b(ut|y)|en|for|i[fn]|o[fnr]|t(he|o)|vs?\.?|via)[ -]/i) > -1)
            return match.toLowerCase();
        if (title.substring(index - 1, index + 1).search(/['"_{([]/) > -1)
            return match.charAt(0) + match.charAt(1).toUpperCase() + match.substr(2);
        if (match.substr(1).search(/[A-Z]+|&|[\w]+[._][\w]+/) > -1 ||
            title.substring(index - 1, index + 1).search(/[\])}]/) > -1)
            return match;
        return match.charAt(0).toUpperCase() + match.substr(1);
    });
}

Andere Tipps

Haben Sie versucht, die text-trans CSS Stil, um Ihre Kontrollen?

Manchmal, nicht zu tun es die richtige Antwort auf ein Codierung Problem.

Ich würde wirklich dies nicht tun, es sei denn, Sie glauben, ein Skript schreiben können, um den Fall im folgenden Satz richtig eingestellt, wenn Sie es zuerst konvertieren waren in Kleinbuchstaben und in das Skript übergeben.

Jean-Luc "The King" O'Brien MacHenry van d'Graaf IIV (PhD, OBE), verließ seine Macintosh mit in Macdonalds mit seinen Freunden MacIntosh und MacDonald. Jesus gab seinen Atari ST bei AT & T "Aids für AIDS" Gig in St. George st, mit Van Halen in van Henry van, die Durchführung des Sturms.

Sie haben sich für einen Fall einrichten, indem Sie einen Parser für natürliche Sprache zu schaffen versuchen. Sie können dies nie als auch der Benutzer tun. Am besten kann man eine Annäherung tun, und gibt dem Anwender die Möglichkeit, eine Korrektur zu bearbeiten und zu erzwingen, wenn Sie es falsch ist. Aber oft in solchen Fällen die Bearbeitung ist mehr Arbeit als nur manuell und direkt in erster Linie zu tun.

Das heißt, wenn Sie den Raum und die Macht haben, zu speichern und zu einem großen n-Gramm-Korpus von geeignet aktivierten Wörtern zu suchen, würden Sie wenigstens in der Lage sein, einen wilden Stich haben am wahrscheinlichsten gewünschten Fall.

Sie stellen eine interessante Frage. Acting auf jeden Tastendruck kann mehr zu begrenzen, weil Sie nicht wissen, was unmittelbar nach einem bestimmten keycode kommt (die Komplexität eine Reaktion rückgängig gemacht, die falsch erweist bedeuten könnte, die auf eine Textrange-basierte Routine gehen sowieso). Zugegeben, ich habe nicht mit dem Code zu diesem Problem bisher gerungen, so ist dies eine Hypothese in meinem Kopf.

Bei jeder Länge, hier ist ein Titel Casing-Funktion (Java-Implementierung von einer John Gruber Bloggen Automatisierung inspiriert), die Ideen anspornen kann, wenn es darum geht, die tatsächliche Gehäusecode Handhabung:

  

http://individed.com/code/to-title-case/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top