在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."]
的列表(注意,这包括"sad."中的点)
str.match(/'w+/g)
返回所有单词的列表:["I", "dont", "know", "what", "you", "mean", "by", "glory", "Alice", "said"]
match()上的文档
在使用split之前应该修剪字符串。
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);
这将匹配单词边界之间的单词,因此所有空格都不匹配,因此不会包含在结果数组中。
参见filter
方法
http://www.hunlock.com/blogs/Mastering_Javascript_Arrays#quickIDX13
我认为之所以会出现空的子字符串,是因为存在多个空白。您可以在for循环中使用replace()将多个空白替换为单个空白,然后使用split()将程序拆分为单个空白
// getting full program from div
var program = document.getElementById("answers").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(' ')
相关文章:
- 我如何找到一个句子中的所有空格并替换忽略它们
- Regex代码只允许一个空格
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 用空格替换下划线PHP
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- 当没有文本输入聚焦时检测空格键按下
- 一个密码测试程序,如果存在空格,它会提醒用户
- 在谷歌应用程序脚本中转换为空格的制表符
- 如何将字符串拆分为字符,但在javascript中保留空格
- Jquery:如何获取所选选项全文(带空格)
- 在Javascript中使用空格分割字符串
- 在Javascript中用空格分割数组行
- 仅在特定上下文中按空格分割的JavaScript正则表达式
- 通过多个空格分割字符串
- 按空格分割字符串
- 分割空格避免双引号JS字符串:from 'a "b "c"d & # 39;到
- 如何在javascript中按空格分割字符串,除非空格出现在引号之间
- JavaScript谷歌电子表格文字分割和无空格功能
- JavaScript中基于逗号和空格的分割