我正在寻找一种最简单的方法来小写一个短语中不属于AND的所有字母。我希望AND
保留原始案例,无论and
还是AND
都不应更改。
例如,barack AND obama
应该测试等于Barack AND Obama
而不是barack and obama
。 (注意和中的案例差异)
这是一种方法,但我想知道是否有更短的方法或者更确切地说是避免迭代器的方法:
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(' ');
答案 0 :(得分:8)
您可以使用否定前瞻来小写每个不完全正确的单词:
str = str.replace(/\b(?!AND).+?\b/g, function(s) {
return s.toLowerCase();
});
答案 1 :(得分:2)
我认为pimvdb有最优雅的解决方案,但只是为了变化,这里是另一个。
var str = 'Barack AND Obama';
var arr = str.split(' ');
for(var i=0;i<arr.length;i++){
if (arr[i] != 'AND'){
arr[i] = arr[i].toLowerCase();
}
}
var ans = arr.join(" ");
它不是那么优雅,但我发现它稍微更人性化,并且如果将来需要更容易修改,即添加到不应该小写的单词列表中。