在Javascript中使用空格拆分字符串?

dok*_*ndr 9 javascript tokenize

我需要一个tokenizer,它给出一个字符串,其中包含单词之间的任意空格,将创建一个没有空子字符串的单词数组.

例如,给定一个字符串:

" I dont know what you mean by glory Alice said."
Run Code Online (Sandbox Code Playgroud)

我用:

str2.split(" ")
Run Code Online (Sandbox Code Playgroud)

这也返回空子字符串:

["", "I", "dont", "know", "what", "you", "mean", "by", "glory", "", "Alice", "said."]
Run Code Online (Sandbox Code Playgroud)

如何从数组中过滤掉空字符串?

Daf*_*aff 16

您可能甚至不需要过滤,只需使用此正则表达式进行拆分:

"   I dont know what you mean by glory Alice said.".split(/\b\s+/)
Run Code Online (Sandbox Code Playgroud)

  • 匹配单词边界,例如空格,换行符,标点字符或字符串结尾(https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions).可能不是完美的正则表达式,但对于那个例子它可行. (3认同)

geo*_*org 8

 str.match(/\S+/g) 
Run Code Online (Sandbox Code Playgroud)

返回非空间序列列表["I", "dont", "know", "what", "you", "mean", "by", "glory", "Alice", "said."](请注意,这包括"说"中的点.)

 str.match(/\w+/g) 
Run Code Online (Sandbox Code Playgroud)

返回所有单词的列表: ["I", "dont", "know", "what", "you", "mean", "by", "glory", "Alice", "said"]

匹配上的文档()


Gal*_*way 7

您应该在使用拆分之前修剪字符串.

var str = " I dont know what you mean by glory Alice said."
var trimmed = str.replace(/^\s+|\s+$/g, '');
trimmed = str.split(" ")
Run Code Online (Sandbox Code Playgroud)