如何使用空格将string拆分,并使用正则expression式将前导空格和尾部空格忽略为单词数组?

我通常在JavaScript中使用下面的代码来分割一个string的空白。

"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."] 

问题是当我有一个string有前导或尾随空白,在这种情况下,结果数组的string将包括一个空的字符在数组的开始和/或结束。

 " The quick brown fox jumps over the lazy dog. ".split(/\s+/); // ["", "The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog.", ""] 

消除这样的空白字符是一件微不足道的任务,但是如果可能的话,我宁愿在正则expression式中考虑这一点。 有人知道我可以用什么正则expression式来实现这个目标吗?

如果你对非空格的位更感兴趣,你可以匹配非空白而不是空格分隔。

 " The quick brown fox jumps over the lazy dog. ".match(/\S+/g); 

请注意,以下内容返回null

 " ".match(/\S+/g) 

所以学习的最佳模式是:

 str.match(/\S+/g) || [] 

" The quick brown fox jumps over the lazy dog. ".trim().split(/\s+/);

而不是在空格序列分裂,你可以匹配任何非空白序列:

 " The quick brown fox jumps over the lazy dog. ".match(/\S+/g)