2

ASPX ページの Telerik RadEditor コントロール内でユーザー タイプとして自動大文字化を実装する必要があります。

これは、IE 固有のソリューション (IE6+) である可能性があります。

現在、ユーザーが入力するすべてのキーストローク (ダウン/アップ) をキャプチャして、フォーマットされたテキストに展開される本質的に短いキーワードである「マクロ」と呼ばれる別の機能をサポートしています。つまり、マクロ「so」は、スペースバーを押して「stackoverflow」に自動展開できます。

つまり、keyCode 情報にアクセスでき、TextRange メソッドを使用して単語 (「so」) を選択し、それを「stackoverflow」に展開しています。したがって、私は文脈のいくつかの類似点を持っています。

ただし、自動大文字化する必要があるかどうかを知るために、このコンテキストを確認する必要があります。これは、マクロが含まれているかどうかに関係なく機能する必要があります。

マクロのキーストロークを監視しているので、句読点 (大文字であることを示す単なるピリオド以上のもの) を監視し、次に入力された文字を自動的にキャップする必要がありますか、それとも TextRange を使用してコンテキストを分析する必要がありますか?

4

4 に答える 4

4

テキスト変換CSS スタイルをコントロールに適用しようとしましたか?

于 2008-09-20T08:33:13.207 に答える
4

これがあなたがやろうとしていることかどうかはわかりませんが、指定された文字列をタイトルケースに変換する関数 (参照) は次のとおりです。

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);
    });
}
于 2008-09-20T08:48:33.250 に答える
2

場合によっては、それを行わないことがコーディングの問題に対する正しい答えです。

最初に小文字に変換してスクリプトに渡す場合、次の文で大文字と小文字を正しく設定するスクリプトを作成できると思わない限り、私は本当にこれを行いません。

Jean-Luc "The King" O'Brien MacHenry van d'Graaf IIV (PhD, OBE) は、友人の MacIntosh と MacDonald と共に MacDonald's に Macintosh を預けました。イエスは、セント ジョージ通りで行われた AT&T の「エイズ フォー エイズ」ギグで彼のアタリ ST を披露し、ヴァン ヘンリーのバンでヴァン ヘイレンと共にテンペストを演奏しました。

Natural Language Parser を作成しようとして失敗する準備ができました。ユーザーのようにこれを行うことはできません。せいぜい、近似を行うことができ、ユーザーが編集して、間違ったときに修正を強制する機能をユーザーに提供できます。しかし、多くの場合、編集は最初から手動で行うよりも手間がかかります。

とはいえ、適切に大文字化された単語の大規模な n-gram コーパスを保存および検索するためのスペースとパワーがあれば、少なくとも、最も可能性の高いケースでワイルド スタブを実行することができます。

于 2012-02-13T09:42:34.110 に答える
0

あなたは興味深い質問をします。キーを押すたびにアクションを実行すると、特定のキーコードの直後に何が来るかがわからないため、より制限がかかる場合があります (正しくないことが判明した反応を元に戻す複雑さは、とにかく TextRange ベースのルーチンに移動する必要があることを意味する可能性があります)。確かに、これまでこの問題に関するコードと格闘したことがないので、これは私の頭の中の仮説です。

タイトル ケーシング関数 (John Gruber ブログの自動化に触発された Java 実装) は、実際のケーシング コードの処理に関してアイデアを刺激する可能性があります。

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

于 2008-09-20T09:04:13.290 に答える