javascript - 每个单词的第一个字母大写并处理拉丁字符

标签 javascript regex typescript

我正在尝试将句子中每个单词的第一个字母大写。

在 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/

相关文章:

reactjs - 使用 Firebase Auth Context 在 React-Ionic 应用程序中保护路由

javascript - 自定义 jQuery Accordion 样式和图像不起作用

javascript - 使用身份验证安全规则时 Firebase 读取权限被拒绝

javascript - 仅在具有相同类名的特定项目上运行 Javascript 函数

php - codeigniter 中的一次 HTTPS ajax 调用

javascript - 匹配字符但不包括该字符和之后的所有内容

typescript - fp-ts 和 Jest : ergonomic tests for Option and Either?

javascript为尚未在工具提示下的部分字符串创建工具提示

java - 使用正则表达式从Java中的txt文件中获取引号之间的字符串

typescript - 无论如何在 Nest.js 中使用 Fastify 获取请求和响应的类型接口(interface)