我正在寻找最快的方法,以小写所有不属于“AND”短语中的字母。我希望留下“AND”的原始大小写,无论它是“and”还是“AND”都不应更改。
例如,“barack AND obama”应该等同于“Barack AND Obama”,但不等于“barack and obama”(注意“and”中的大小写差异)。
以下是一种方法,但我想知道是否有更短的方式或者一种避免使用迭代器的方式:
例如,“barack AND obama”应该等同于“Barack AND Obama”,但不等于“barack and obama”(注意“and”中的大小写差异)。
以下是一种方法,但我想知道是否有更短的方式或者一种避免使用迭代器的方式:
var str = 'Barack AND Obama'; // should be barack AND obama after
str = str.split(/\s+/g).map(function (s) {
return s.toLowerCase() != 'and' ? s.toLowerCase() : s;
}).join(' ');
.+?
改为\w+
来提高性能。这样可以避免回溯,并且避免匹配非单词字符(如空格),这些字符现在被匹配,但toLowerCase
不会改变它们。 - Martin Ender.+?
如何回溯? - Brian Cray