2012-01-23 21 views
2

JavaScriptを使用しているIMクライアントインターフェイスで、ユーザーリスト実装を書き直しています。このリストの名前は現在アルファベット順にソートされており、文字列を比較するときにアルファベットのみが考慮されるように編集したいと考えています。Javascript:アルファベットのみの文字列を比較するにはどうすればよいですか?

たとえば、 "foo"が "bar"の後に来るので、 "1foo"は "bar"の後にとなります。

私は2つの元の文字列からアルファベット以外の文字をすべて削除して2つの一時的な文字列を作成することができますが、これを行う簡単な方法があるはずです。まあ

+0

現在ソートしているコードを投稿することはできますか? – j08691

+0

数字で始まる文字列を文字列の前後にソートしますか?あなたは何をしたいですか? – mowwwalker

+0

javascriptでカスタムソート関数を使用することができます:http://www.javascriptkit.com/javatutors/arraysort.shtml – mowwwalker

答えて

7

、あなたがarrと呼ばれる文字列の配列を持っている場合、あなたはこのワンライナーを使用することができます。

arr.sort(function(a,b) {return a.replace(/[^a-z]/ig,'') > b.replace(/[^a-z]/ig,'') ? 1 : -1;}); 

arrは、現在のアカウントにのみ文字を取ってソートされます。

+0

配列が大きな配列の場合、ソートアルゴリズムの各比較で文字列を一時的に作成する2つの正規表現置換操作が発生するため、この並べ替えは本当に遅くなる可能性があります。 – jfriend00

関連する問題