2012-12-07 9 views
5

フレーズでANDの一部でないすべての文字を小文字にする最速の方法を探しています。 andANDのいずれであっても、元のケースには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(' '); 

答えて

8

あなたは正確ではありませんすべての単語を小文字ことができ、

+0

良いアプローチ!私は最高のものを選ぶ前に他の人にも興味がある –

+0

'String.replace'が関数を受け入れるのを知りませんでした。 –

+0

私はそれが疑似ルック・バックをするのに使われているのを見ました。これはおそらく私の問題に対する最もエレガントなアプローチです。 –

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(" "); 

すなわち小文字すべきでない単語のリストに追加し、それはエレガントではありませんが、私はそれが少し読みやすく、人間、将来的には、必要に応じて変更することが容易に見つけます。

+0

そこには何も分割していません。あなたは 'split( '')'をすることを意図していたと思いますか? –

+0

はい、申し訳ありませんが、それは私の部分のタイプミスでした。 :) – Scott

関連する問題