Javascript 有没有一种方法可以忽略标题格方法中的首字母缩略词?
背景 我有一个电视节目列表,我想转换为标题。我当前的代码在“bojack Horseman”、“Family GUY”和“jessica jones”等程序上运行良好。然而,我的一些程序中有缩写词。因此,像“paradise pd”这样的标题将转换为“paradise pd” 我研究了Regex作为一种可能的解决方案,并访问了一些网站,特别是(Regex101)[看看我是否能找到一些东西。也许我没有在他们的库中使用正确的搜索词,但我在那里运气不好 这是我想要做的事情的最佳解决方案还是有更好的方法 我的现有代码Javascript 有没有一种方法可以忽略标题格方法中的首字母缩略词?,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,背景 我有一个电视节目列表,我想转换为标题。我当前的代码在“bojack Horseman”、“Family GUY”和“jessica jones”等程序上运行良好。然而,我的一些程序中有缩写词。因此,像“paradise pd”这样的标题将转换为“paradise pd” 我研究了Regex作为一种可能的解决方案,并访问了一些网站,特别是(Regex101)[看看我是否能找到一些东西。也许我没有在他们的库中使用正确的搜索词,但我在那里运气不好 这是我想要做的事情的最佳解决方案还是有更好的方法
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(' ')
);
}
啊,这需要在一个目录上进行检查…不确定你是否可以在没有数据的情况下自动执行。@PraveenKumarPurushothaman我不确定你的意思。我应该在我的帖子中添加一些内容吗?就像给出的答案一样,你必须使用像
['PD',MD',ASAP',NCIS'这样的字典/…等/…等/…等
通常首字母缩写词之间用句号分隔,例如P.D、M.a.S.H等。除了IceMetal的答案外,您还可以对照已知首字母缩写词列表进行检查,并将数据按此方式格式化首字母缩写词。