如何将字符串中单词中的所有第一个字母大写,但不包括 'by' 等某些情况?
How to capitalize all 1st alphabet in the words in a string excluding some cases like 'by'?
这就是我到目前为止所做的。我把所有单词的第一个字母都大写了。
预期输出:Dance by Cow
我收到的输出是:Dance By Cow
let capitalize = str => {
return str
.toLowerCase()
.split('-')
.map(s => s.charAt(0).toUpperCase() + s.substring(1))
.join(' ');
};
toTitleCase('dance-by-cow');
我猜你是在正确的轨道上。也许一个好的解决方案是创建一个异常数组,其中包含您希望从将第一个字符转换为大写时跳过的特定单词。
请查找扩展解决方案:
const toTitleCase = (value) => {
const exceptions = ['by']; // handling the specific words
const handleMapping = s => exceptions.includes(s) ? s : s.charAt(0).toUpperCase() + s.substring(1);
return value.toLowerCase()
.split('-')
.map(handleMapping)
.join(' ');
}
console.log(toTitleCase('dance-by-cow'));
希望对您有所帮助!
这样的怎么样?
const stopwords = new Set (['by', 'with', 'to', 'from', 'and', 'the'])
然后...
.map(s => stopwords.has(s) ? s : s.charAt(0).toUpperCase() + s.substring(1))
在这个级别,它只是条件代码。但是,获得一组正确的停用词并非易事。
可以尝试使用,使用第二个参数来提供您的排除词,因为您没有在 post.
中指定任何其他词
function toTitleCase(input, exclusions = []) {
return input
.toLowerCase()
.split('-')
.map((word) => {
return exclusions.includes(word) ? word : word.charAt(0).toUpperCase() + word.substring(1);
})
.join(' ');
}
let example = toTitleCase('dance-by-cow', ['by']);
console.log(example);
这就是我到目前为止所做的。我把所有单词的第一个字母都大写了。
预期输出:Dance by Cow
我收到的输出是:Dance By Cow
let capitalize = str => {
return str
.toLowerCase()
.split('-')
.map(s => s.charAt(0).toUpperCase() + s.substring(1))
.join(' ');
};
toTitleCase('dance-by-cow');
我猜你是在正确的轨道上。也许一个好的解决方案是创建一个异常数组,其中包含您希望从将第一个字符转换为大写时跳过的特定单词。
请查找扩展解决方案:
const toTitleCase = (value) => {
const exceptions = ['by']; // handling the specific words
const handleMapping = s => exceptions.includes(s) ? s : s.charAt(0).toUpperCase() + s.substring(1);
return value.toLowerCase()
.split('-')
.map(handleMapping)
.join(' ');
}
console.log(toTitleCase('dance-by-cow'));
希望对您有所帮助!
这样的怎么样?
const stopwords = new Set (['by', 'with', 'to', 'from', 'and', 'the'])
然后...
.map(s => stopwords.has(s) ? s : s.charAt(0).toUpperCase() + s.substring(1))
在这个级别,它只是条件代码。但是,获得一组正确的停用词并非易事。
可以尝试使用,使用第二个参数来提供您的排除词,因为您没有在 post.
中指定任何其他词function toTitleCase(input, exclusions = []) {
return input
.toLowerCase()
.split('-')
.map((word) => {
return exclusions.includes(word) ? word : word.charAt(0).toUpperCase() + word.substring(1);
})
.join(' ');
}
let example = toTitleCase('dance-by-cow', ['by']);
console.log(example);