作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
背景
我有一个要转换为标题格式的电视节目列表。我当前的代码适用于“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(' ')
);
}
关于javascript - 有没有办法在标题案例方法中忽略首字母缩略词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58119962/
我是一名优秀的程序员,十分优秀!