我怎样才能通过空格或逗号分割JavaScriptstring?
如果我尝试
"my, tags are, in here".split(" ,")
我得到以下
[ 'my, tags are, in here' ]
而我想要的
['my', 'tags', 'are', 'in', 'here']
String.split
也可以接受一个正则expression式:
input.split(/[ ,]+/);
这个特定的正则expression式在一个或多个逗号或空格的序列上进行分割,因此例如多个连续的空格或逗号+空格序列不会在结果中产生空元素。
使用.split(/[ ,]+/)
是好的,但是早晚使用自然语句会最终获得数组中的空元素。 例如['foo', '', 'bar']
。
如果你的用例没问题,那就好了。 但是,如果你想摆脱空的元素,你可以做:
var str = 'whatever your text is...'; str.split(/[ ,]+/).filter(Boolean);
"my, tags are, in here".split(/[ ,]+/)
结果是:
["my", "tags", "are", "in", "here"]
你可以使用正则expression式来捕捉任何长度的空格,这就像:
var text = "hoi how are you"; var arr = text.split(/\s+/); console.log(arr) will result : ["hoi", "how", "are", "you"] console.log(arr[2]) will result : "are"
input.split(/\s*[\s,]\s*/)
… \s*
匹配零个或多个空白字符(不只是空格,还包括制表符和换行符)。
… [\s,]
匹配一个空白字符或一个逗号
如果你想避免像"foo,bar,,foobar"
这样的input中的空白元素,这将做到这一点:
input.split(/(\s*,?\s*)+/)
+
匹配一个或多个前面的字符或组。
编辑:
已添加?
在逗号之后匹配零个或一个逗号。
编辑2:
原来编辑1是一个错误。 修复。 现在必须至less有一个逗号或一个空格来expressionfind一个匹配。
当我想要考虑到像逗号这样的额外字符(在我的情况下,每个标记都可以用引号input),我会做一个string.replace()来将其他分隔符更改为空白,然后分割空白。