обрезать в JavaScript? что делает этот код? - PullRequest
21 голосов
/ 02 августа 2010

Я искал функцию обрезки в JavaScript, которая не существует, и некоторый код в Googling предлагает использовать:

function trimStr(str) {
  return str.replace(/^\s+|\s+$/g, '');
}

Я хочу знать, как str.replace(/^\s+|\s+$/g, '') работает. Я понимаю, что это какая-то форма регулярного выражения, но не знаю, что оно делает.

Ответы [ 2 ]

36 голосов
/ 02 августа 2010

/^\s+|\s+$/g ищет пробелы в начале или конце строки.Выражение можно разделить на две части, ^\s+ и \s+$, которые разделены | (ИЛИ).Первая часть начинается с начала строки (^) и включает столько пробельных символов, сколько может (\s+).Вторая часть делает то же самое, но в обратном порядке и для конца использует знак доллара ($).

На простом английском языке регулярное выражение будет выглядеть следующим образом:

Найдите как можно больше пробельных символов в начале строки или как можно больше пробельных символов в конце.

Обратите внимание, что \s соответствует пробелам, табуляциям и разрывам строк.

Часть /g в конце включает глобальный поиск, который допускает множественные замены (например, не только начало, но и конец строки).

6 голосов
/ 02 августа 2010

^ - начало строки, а $ - конец.\s означает символ пробела (который в JavaScript означает, в частности, табуляцию, вертикальную табуляцию, подачу формы, пробел, пробел без пробелов, метку порядка байтов, разделитель пробелов Unicode (категория Z), перевод строки, возврат каретки, разделитель строк илиразделитель абзацев), а + означает 1 или более.| - это чередование, выбор между двумя вариантами.g - глобальный флаг.Таким образом, регулярное выражение означает начало, затем один или несколько пробелов или один или несколько пробелов, а затем конец.Затем мы заменяем все совпадения (поскольку они глобальные) на пустую строку.

Вас может заинтересовать это сообщение в блоге , которое анализирует более подробно, чем вам, вероятно, нужно :) профии минусы различных функций отделки салона.

...