我使用此通用功能将大多数列表项转换为标题大小写,没有问题。我发现了一个需要改进的地方,当中间有破折号或斜线时,我希望将下一个字母大写。
例如,西类牙裔/拉丁美洲人应该是西类牙裔/拉丁美洲人。基本首字母大写或以符号或空格开头。
当前代码:
function toTitleCase(str) {
return str.toLowerCase().replace(/(?:^|\s)\w/g, function (match) {
return match.toUpperCase();
});
}
最佳答案
只需将您捕获的空白\s
更改为一类字符,即空白,连字符或斜杠[\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"));