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

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

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

2
Hamster 10 Июл 2010 в 13:26

3 ответа

Лучший ответ
  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+$/, '');
    };
}
5
bobince 10 Июл 2010 в 09:45

Что-то вроде этого?

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

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

1
Epeli 10 Июл 2010 в 09:36

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

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

str = str.replace(/[^a-z0-9]+/ig).substring(0, 4).toLowerCase();
0
Amarghosh 10 Июл 2010 в 10:59