Javascript, форматирование строки: мне нужны первые 4 буквы строки, строчные буквы, пробелы сняты, символы удалены - PullRequest
2 голосов
/ 10 июля 2010

... Я должен просто перечислить их:

  1. Первые 4 буквы / цифры, с ...
  2. Все строчные.
  3. Пробелы удалены.
  4. Символы удалены.

Должно быть просто. Какой лучший способ сделать это?

Ответы [ 3 ]

5 голосов
/ 10 июля 2010
  1. slice(0, 4)
  2. toLowerCase()
  3. replace(/\s/g, '')
  4. replace(/[^\w\s]/g, '')

Третий и четвертый регулярные выражения можно объединить проще, чем просто \W, чтобы удалить все не алфавитно-цифровые символы, если вы этого хотите,Если «символы», которые вы хотите удалить, более специфичны, вам придется явно поместить их в класс символов, например./[!"#...]/g.Если вы имеете в виду только то, что хотите удалить пробелы в начале и конце строки («обрезка»):

replace(/^\s+/, '').replace(/\s+$/, '')

вместо. (*)

Объедините их в цепочку в любом порядкеявляется целесообразным.Если вы хотите выделить до четырех символов после , вы удалили ненужные символы:

var processed= str.replace(/\W/g, '').toLowerCase().slice(0, 4);

(*: string.trim() также доступна в ECMAScript пятой редакции, но не все браузеры поддерживают еепока что. Вы можете взломать поддержку trim() в String.prototype, если хотите использовать string.trim() во всех браузерах сегодня:)

if (!('trim' in String.prototype)) {
    String.prototype.trim= function() {
        return (''+this).replace(/^\s+/, '').replace(/\s+$/, '');
    };
}
1 голос
/ 10 июля 2010

Как то так?

"  MY STRING  ".replace(/^\s+|\s+$/g, '').substring(0,4).toLowerCase()

Вы можете удалить нужные символы аналогичным методом замены.

0 голосов
/ 10 июля 2010

Пробелы удалены.

только с концов, или вся строка?Следующее убирает все пробелы (и все, кроме цифр и букв - \w, включая и подчеркивания) из строки.

str = str.replace(/[^a-z0-9]+/ig).substring(0, 4).toLowerCase();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...