обрезка в JavaScript? что делает этот код?

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

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

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

21
задан a darren 14 February 2018 в 16:29
поделиться

2 ответа

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

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

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

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

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

36
ответ дан 29 November 2019 в 20:31
поделиться

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

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

6
ответ дан 29 November 2019 в 20:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: