I typically use the following code in JavaScript to split a string by whitespace.
"The quick brown fox jumps over the lazy dog.".split(/\s+/);
// ["The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog."]
This of course works even when there are multiple whitespace characters between words.
"The quick brown fox jumps over the lazy dog.".split(/\s+/);
// ["The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog."]
The problem is when I have a string that has leading or trailing whitespace in which case the resulting array of strings will include an empty character at the beginning and/or end of the array.
" The quick brown fox jumps over the lazy dog. ".split(/\s+/);
// ["", "The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog.", ""]
It's a trivial task to eliminate such empty characters, but I'd rather take care of this within the regular expression if that's at all possible. Does anybody know what regular expression I could use to accomplish this goal?
If you are more interested in the bits that are not whitespace, you can match the non-whitespace instead of splitting on whitespace.
Note that the following returns
null
:So the best pattern to learn is:
" The quick brown fox jumps over the lazy dog. ".trim().split(/\s+/);
Instead of splitting at whitespace sequences, you could match any non-whitespace sequences:
Not elegant as others code but very easy to understand: