Обрезать в javascript? что делает этот код?

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

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

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

Ответ 1

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

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

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

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

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

Ответ 2

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

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