javascript - 有没有办法在标题案例方法中忽略首字母缩写词?
问题描述
背景
我有一个要转换为标题大小写的电视节目列表。我当前的代码在“bojack Horseman”、“Family GUY”和“jessica jones”等程序上运行良好。但是,我的一些程序中有首字母缩略词。结果,像“paradise pd”这样的标题将被转换为“Paradise Pd”。
我已经将 Regex 作为一种可能的解决方案进行了研究,并访问了一些网站,特别是 (Regex101)[ https://regex101.com/]以查看是否可以找到一些东西。也许我没有在他们的图书馆中使用正确的搜索词,但我没有运气。
这是我想做的最好的解决方案还是有更好的方法?
我的代码现状
titleSort = () => {
// make sure all program names are in title case
let titleCasePrograms = this.props.programs.map(program => program.name.split(' ')
.map(w => w[0].toUpperCase() + w.substr(1).toLowerCase())
.join(' '))
}
我希望完成什么
上面的代码是我正在编写的一个较大批次的一部分,用于按字母顺序对名称进行排序。然而,在我了解实际的排序方法之前,我想确保我考虑到了不同类型的单词,我会遇到并正确格式化它们。:-)
非常感谢您的时间和建议!
解决方案
计算机无法知道首字母缩写词是什么,因此您需要有一个首字母缩写词列表。一旦你有了它,你就可以在你的转换中添加一个对该列表的检查。像这样的东西:
const acronyms = ['PD', 'MD', 'ASAP', 'NCIS']; // ...etc....
titleSort = () => {
let titleCasePrograms = this.props.programs.map(program => {
return program.name.split(' ')
.map(w => {
if (acronyms.includes(w.toUpperCase())) {
return w.toUpperCase();
}
return w[0].toUpperCase() + w.substr(1).toLowerCase();
})
.join(' ')
);
}
推荐阅读
- python-3.x - 我正在编写一个 Tkinter GUI,它将从硬件中读取一个值并使用 pandas 将其写入 CSV 文件,但出现错误
- ffmpeg - laravel 7 ffmpeg 编码失败
- internet-explorer - 带有查询字符串的 IE 9-11 字体问题
- javascript - 如何在javascript的画布中使用计时器制作循环?
- c# - 如何验证字典参数?
- volatile - 为什么在这种情况下会发生 jmm 重新排序?
- python-3.x - 在线处理html文本
- html - 指定每个 3D 面的颜色
- html - 如果在Angular 9中拒绝更改功能,如何恢复到下拉列表的先前值
- flutter - 仅为通过电子邮件验证的用户显示浮动按钮