[英]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+/)
您应该在使用拆分之前修剪字符串。
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.