2017-05-04 4 views
0

この共通関数を使用して、ほとんどのリストアイテムをタイトルケースに問題なく変換します。私は改善が必要な場所を発見しました。途中にダッシュやスラッシュがある場合、次の文字を大文字にします。ダッシュやスラッシュの後に文字列をタイトルケースに変換する

たとえば、ヒスパニック/ラテン系はヒスパニック/ラテン系である必要があります。基本的に最初の文字が大文字であるか、記号またはスペースで始まります。

現在のコード:

function toTitleCase(str) { 
    return str.toLowerCase().replace(/(?:^|\s)\w/g, function (match) { 
     return match.toUpperCase(); 
    }); 
} 

答えて

2

を追加したり、正規表現での条件、ハイフンまたはスラッシュ[\s-/](およびその他のもの)

function toTitleCase(str) { 
 
    return str.toLowerCase().replace(/(?:^|[\s-/])\w/g, function (match) { 
 
     return match.toUpperCase(); 
 
    }); 
 
} 
 

 
console.log(toTitleCase("test here")); 
 
console.log(toTitleCase("test/here")); 
 
console.log(toTitleCase("test-here"));

1

ただ単に空白という文字のクラスであることを、空白\sのキャプチャを変更/(?:^|\s|\/|\-)\w/g

function toTitleCase(str) { 
 
    return str.toLowerCase().replace(/(?:^|\s|\/|\-)\w/g, function (match) { 
 
     return match.toUpperCase(); 
 
    }); 
 
} 
 

 

 
console.log(toTitleCase('His/her new text-book'))

関連する問題