我正在尝试将句子中每个单词的第一个字母大写。
在 JavaScript 中,\b
似乎就是为了这个目的:它匹配单词的开头。
这适用于 ascii 字符:
static capitalize(str: string): string {
return str.replace(new RegExp('\\b\\w', 'g'), (txt) => txt.toUpperCase());
}
此测试通过:
expect(StringUtils.capitalize('jean-michel dupont')).toEqual('Jean-Michel Dupont');
问题:当我使用拉丁字符时,拉丁字符和下一个字符都是大写的。
StringUtils.capitalize('Fais de ta vie un rêve, et d\'un rêve, une réalité.')
Fais De Ta Vie Un RÊVe, Et D'un RÊVe, Une RÉAlité. // Actual
Fais De Ta Vie Un Rêve, Et D'Un Rêve, Une Réalité. // Expected
有办法处理这个问题吗?
最佳答案
您可以使用 CSS 代替 JavaScript 吗?如果是这样,请查看 text-transform
CSS 属性。
示例:
<div style="text-transform: capitalize">Fais de ta vie un rêve, et d'un rêve, une réalité.</div>
关于javascript - 每个单词的第一个字母大写并处理拉丁字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58344351/