Как разбить строку на пробелы и игнорировать начальные и конечные пробелы в массиве слов с помощью регулярного выражения?
Я обычно использую следующий код в JavaScript, чтобы разделить строку на пробел.
"The quick brown fox jumps over the lazy dog.".split(/s+/);
// ["The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog."]
Это, конечно, работает, даже если есть несколько пробелов между словами.
"The quick brown fox jumps over the lazy dog.".split(/s+/);
// ["The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog."]
проблема в том, что у меня есть строка, которая имеет начальные или конечные пробелы, и в этом случае результирующий массив строк будет включать пустой символ в начале и/или конце массива.
" The quick brown fox jumps over the lazy dog. ".split(/s+/);
// ["", "The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog.", ""]
это тривиальная задача, чтобы устранить такие пустые символы, но я бы предпочел позаботиться об этом в регулярном выражении, если это вообще возможно. Кто-нибудь знает, что регулярное выражение, я мог бы использовать для достижения этой цели?
3 ответа:
если вас больше интересуют биты, которые не являются пробелами, вы можете сопоставить не-пробелы вместо разделения на пробелы.
" The quick brown fox jumps over the lazy dog. ".match(/\S+/g);
обратите внимание, что после возвращения
null
:" ".match(/\S+/g)
так что лучший шаблон, чтобы узнать это:
str.match(/\S+/g) || []