gpt4 book ai didi

Javascript 大写每个单词的第一个字母忽略缩写

转载 作者:行者123 更新时间:2023-12-05 05:45:35 26 4
gpt4 key购买 nike

我正在尝试将字符串中每个单词的首字母大写。我在网上发现了类似的问题,但似乎没有一个能回答我忽略诸如 can't、won't、wasn't 等缩写词的问题。

这段代码有效,但它也将缩写中撇号后面的字母大写。

var str = str.replace(/\b\w/g, w => w.toUpperCase())

如果字符串包含像 can't 或 won't 这样的缩写,它将输出 Can'T 或 Won'T。

有没有办法忽略单词中间的撇号?我仍然想将被其他标点符号分隔的单词大写。例如:

  • this_is_an_example -> This_Is_An_Example
  • this/is/an/example -> This/Is/An/Example
  • 这是一个例子 -> 这是一个例子

最佳答案

你可以使用

const texts = ["this_can't_be_an_example", 'this/is/an/example', 'this,is,an,example']
for (const text of texts) {
console.log(text, '=>', text.replace(/([\W_]|^)(\w)(?<!\w'\w)/g, (_, x,y) => `${x}${y.toUpperCase()}` ))
}

参见 regex demo . 详细信息:

  • ([\W_]|^) - 第 1 组(x):非字母数字字符或字符串开头
  • (\w) - 第 2 组(y):一个字符字符
  • (?<!\w'\w) - 负向回顾,确保第 2 组值前面没有字符字符和 ' .

关于Javascript 大写每个单词的第一个字母忽略缩写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71322829/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com