我写了一个函数,可以将一个字符串转换成缩写,但目前它比较长并且区分大小写。
我需要一种方法来缩短它,以便它在任何情况下都能正常工作。目前,如果分隔单词中有大写字母或单词以分隔单词结尾,它就会出现问题。
我的分隔单词基本上是我要删除的单词(因为大多数公司等并不包括它们)。 它们包括:
- and
- of
- the
- for
- to
另外,我删除它们的方法是使用split和join(str.split('and ').join('')
),但对我来说似乎不是最简单的方法。
除了这些问题之外,它工作得很好。 有人能帮我缩小函数并解决这些问题吗? 谢谢。
Function:
String.prototype.toAbbrev = function () {
var s = [];
var a = this.split('and ').join('').split('of ').join('').split('the').join('').split('for ').join('').split('to ').join('').split(' ');
for (var i = 1; i < a.length + 1; i++) {
s.push(a[i - 1].charAt(0).toUpperCase());
}
return s.join('.');
}
已测试公司输出
The National Aeronautics and Space Administration -> N.A.S.A The National Roads and Motorists' Association -> N.R.M.A Royal Society for the Prevention of Cruelty to Animals -> R.S.P.C.A
i
修饰符让它不区分大小写。 - Barmarthis
参数,大多数人并不真正理解其规则或(通常)更简单的替代方法。其次,你当然可以覆盖其他函数。最后,它具有与全局函数相同的所有限制,其命名空间为字符串并不真正改变作用域机制。 - George Mauer