Javascript: Как сравнивать строки только по алфавиту? - PullRequest
2 голосов
/ 24 января 2012

В настоящее время я переписываю реализацию списка пользователей в клиентском интерфейсе IM, который использует JavaScript. Имена в этом списке в настоящее время отсортированы по алфавиту, и я хочу изменить это так, чтобы при сравнении строк учитывались только алфавитные символы.

Например: «1foo» следует после «bar», потому что «foo» следует после «bar».

Я знаю, что мог бы просто создать две временные строки, удалив все неалфавитные символы из двух исходных строк, но я предполагаю, что должны быть более простые способы сделать это.

1 Ответ

7 голосов
/ 24 января 2012

Ну, если у вас есть массив строк с именем arr, вы можете использовать этот однострочный:

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

arr теперь сортируется с учетом только букв.

...