javascript - 括号内第一个单词的首字母大写
问题描述
我想将括号内每个字符串的第一个字母大写...
如果我们有这个字符串:
const text = 'This [forest or jungle] is [really] beautiful';
期望的结果是'This [Forest or jungle] is [Really] beautiful'
至今:
我有大写功能:
function capitalize(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
在这里,我们有这个正则表达式代码来选择括号内的字符串:
/(?<=\[)(.*?)(?=\])/g
请帮忙
解决方案
您可以使用
text = text.replace(/(?<=\[)[a-z](?=[^\][]*])/g, (x) => x.toLocaleUpperCase())
// OR
text = text.replace(/(?<=\[)\p{Ll}(?=[^\][]*\])/gu, (x) => x.toLocaleUpperCase())
请参阅正则表达式演示/正则表达式演示 #2。详情:
(?<=\[)
- 与前面紧跟[
字符的位置匹配的正向后视[a-z]
- 一个小写的 ASCII 字母\p{Ll}
- 任何 Unicode 小写字母(?=[^\][]*\])
- 一个积极的前瞻,它需要任何零个或多个字符,而不是[
和]
,然后是]
当前位置的右侧。
请参阅 JavaScript 演示:
const text = 'This [forest or jungle] is [really] beautiful';
console.log( text.replace(/(?<=\[)[a-z](?=[^\][]*])/g, (x) => x.toLocaleUpperCase()) )
推荐阅读
- python - 自动定位从 python 脚本生成的新 excel 文件并发送电子邮件
- azure - 有没有办法使用 Powershell 更改 Azure Container Registry 管理员密码?
- python - 在 Android 中访问文件并在单击按钮时自动打开它
- javascript - 无法在 Vue 中使用计算的 setter 更改状态
- deepsecurity - 趋势科技服务器深度安全防护系统用户已注销信息日志
- html - 如何将此 React 组件的位置更改为固定?
- php - 使用 db 数据填充编辑表单返回未定义的变量错误 - Laravel 7
- python - Tensorflow/Keras:如何通过通道获取输入层的输出?
- mysql - 删除特定条件的重复记录 | 微软访问
- r - 比较分组数据框中的行时返回列差异