Обрезать в 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
- глобальный флаг. Поэтому регулярное выражение означает начало, затем одно или несколько пробелов или одно или несколько пробелов, а затем конец. Затем мы заменяем все совпадения (так как они глобальны) с пустой строкой.
Вам может быть интересно это сообщение сообщение в блоге, которое анализирует более подробно, чем вам, вероятно, нужно:) плюсы и минусы различной обрезки функции.