ユーザの入力を特定のルールで新しい出力として変換できる関数を検索します。都市FRフォーマッタの場合
この規則は次のとおりです。
最初の文字を大文字(例:P ARIS)
が文字列が含まれている場合は2つのダッシュ - 各単語の間、最初の文字に大文字を適用します() 2番目の単語の
au
、:(例:Saint- E tienne)文字列は次のように特定の単語が含まれている場合、
et
、sur
... 2間のダッシュ( - )は、論文の単語の最初の文字に小文字を適用します(例:サンEtienne- UX-寺院)文字列は単語とが含まれている場合小文字の最初の文字には大文字を、単語の一重引用符の直後には大文字を使用します(例:Parigné-l'Evèque)。
l'eveque
...のように2つのダッシュ( - )の間に入力します。
これは私にとってあまりにも大変な作業ですが、私は第一及び第二のルールを尊重し、この機能ではなく、第三及び第四のルールが見つかりました:
function ucwords(str,force) {
str=force ? str.toLowerCase() : str;
return str.replace(/(^([a-zA-Z\p{M}]))|([ -][a-zA-Z\p{M}])/g,
function(firstLetter){
return firstLetter.toUpperCase();
});
}
- を入力:
paris
- - >出力:Paris
- 入力:
saint-etienne
--->出力:Saint-Etienne
- 入力:
saint-etienne-aux-Temples
--->出力:Saint-Etienne-aux-Temples
- 入力:
parigné-l'eveque
--->出力:Parigné-l'Eveque
誰かがこの関数の最後のルールを追加するために私を助けることができますか?
は、だから私はsplit
とjoin
を使用して、この思い付いたあなた
@HemanGandhiプログラムはルール1とルール2でうまくいきます。しかし、ルール3と4ではうまくいきません:paris-l'eveque。プログラムは、Paris-l'Eveque(ルール3)のように文字列を変換する必要があります。次のように書いてみてください:paris-aux-anges、プログラムはParis-aux-Angesのような文字列を変換しなければなりません。 (ルール4)。 thx –
ヴィレラピント、はい、私は気に入らない。あなたの番号付きリストがテストケースの1つだと思った。ごめんなさい。 –
3番目のルールにはいくつの特定の単語がありますか? –