繁体   English   中英

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

[英]Split a string using whitespace in Javascript?

我需要一个分词器,它给定一个在单词之间带有任意空格的字符串,将创建一个没有空子字符串的单词数组。

例如,给定一个字符串:

" I dont know what you mean by glory Alice said."

我用:

str2.split(" ")

这也返回空子字符串:

["", "I", "dont", "know", "what", "you", "mean", "by", "glory", "", "Alice", "said."]

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

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

"   I dont know what you mean by glory Alice said.".split(/\b\s+/)
 str.match(/\S+/g) 

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

 str.match(/\w+/g) 

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

匹配上的文档()

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

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

我推荐.match

str.match(/\b\w+\b/g);

这匹配字边界之间的单词,因此所有空格都不匹配,因此不包括在结果数组中。

我认为空子字符串会发生,因为有多个空格,你可以在for循环中使用replace()用一个空格替换多个空格,然后用split()分割程序使用一个空白区域像这样:

 // getting full program from div var program = document.getElementById("ans").textContent; //removing multiple spaces var res = program.replace(" ", " "); for (i = 0; i <= program.length; i++) { var res = res.replace(" ", " "); } // spliting each word using space as saperator var result = res.split(" "); 

这就是我们所需要的:

str.trim().split(' ')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM