4

化合物名を識別し、最初と 3 番目の文字を正しく大文字にする方法はありますか?

大文字と小文字の変更は CSS を使用した簡単な作業ですが、複合名を扱う場合、単純な解決策は見つかりませんでした。

頭に浮かぶのは、LeBare、McDonalds、McArthur などの名前を特定するためにある種のルックアップを使用し、論理を適用してケースを変更することです...そこにあるので、車輪を再発明する必要はありません(いわば)?

注: ユーザーはこれらの名前をテキスト ボックスに直接入力します。ユーザーが mcMinn や macArthur などを入力しないという保証はありません。そうは言っても、「Le」と「La」の接頭辞が付いた名前にも気付きました (これらはおそらくラテン語/スペイン語のルーツを持つ名前です。間違っていますが)。

4

4 に答える 4

0

このプロセスで覚えておくべきことの 1 つは、「マッカーサー」が 1 番目と 4 番目のキャラクターになる場合もあるということです。どこからデータを取得するか (ユーザー入力、データベースなど) によっては、それをそのまま使用することも選択肢になると思います。ただし、名前がすべて小文字である場合は、既知の名前のプレフィックスのリストをコンパイルして、それと照合する必要があります。私のポイントは、名前がすべて小文字で入力され、ユーザーに表示されない限り、元の書式を使用することです。

于 2013-02-13T21:48:40.473 に答える
0

CSSだけでは作れません。http://letteringjs.com/など、いくつかの「レタリング」jQuery プラグインがあります。jQueryの名前に基づいて独自のロジックを配置し、次のようなレタリングライブラリで各文字のスタイルを設定できます

.target.char1, .target.char3 {
  text-transform:uppercase;
}
于 2013-02-13T21:49:07.717 に答える
0

javascript でインデックスを使用してループすることができます。

var inputValue = "mcminn";

var transformedInput = '';

if(inputValue){
    for(var i=0; i<inputValue.length; i++){
    if(i===0 || i=== 2){
        transformedInput += inputValue.charAt(i).toUpperCase();
        } else {
            transformedInput += inputValue.charAt(i).toLowerCase();
    }
  }
}

console.log(transformedInput);

于 2022-02-28T14:01:04.513 に答える