Я написал себе функцию, чтобы превратить строку в аббревиатуру, и в настоящее время она довольно длинная и чувствительна к регистру.
Мне нужно укоротить его, чтобы он работал в 100% случаев. В настоящее время он завинчивается, если одно из слов расщепления имеет капитал, если слово заканчивается словом.
Мои разделительные слова - это в основном слова, которые я удаляю (поскольку большинство компаний и их не включают). К ним относятся:
- и
- из
- для
- до
Кроме того, способ, которым я их удаляю, - использовать split и join (str.split('and ').join('')
), который мне кажется не самым простым способом.
Помимо этих проблем, он отлично работает. Может ли кто-нибудь помочь мне сгладить функцию и исправить проблемы? Спасибо.
Функция:
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