如果我尝试
"my, tags are, in here".split(" ,")
我得到了以下结果
[ 'my, tags are, in here' ]
我想要的是
['my', 'tags', 'are', 'in', 'here']
如果我尝试
"my, tags are, in here".split(" ,")
我得到了以下结果
[ 'my, tags are, in here' ]
我想要的是
['my', 'tags', 'are', 'in', 'here']
String.split()
方法还可以接受一个正则表达式:
input.split(/[ ,]+/);
这个正则表达式会根据一个或多个逗号或空格的序列来分隔字符串,这意味着例如多个连续的空格或逗号+空格序列不会在结果中产生空元素。
spaces , before commas
。 - Jon\s
呢?因为blob中可能会有一些换行符,而\s
也可以处理这些情况。 - iambriansreedinput.split("/[ ,]+/")
。省略引号(使用input.split(//)
而不是input.split("//")
),您会获得更好的体验。因为奇怪的是,那只有可能对它本身有效(生成["input.split(\"", ")\""]
)。 - cod3monk3y' ,my, tags, are, here,'.replace(/[\s,]+/g, ' ').trim().split(' ')
- Ghominejad你可以使用正则表达式来捕获任何长度的空格,示例代码如下:
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"
/\s+/
时要注意前后空格。例如,'a b c '.split(/\s+/) === [ 'a', 'b', 'c', '' ]
。如果您先使用.trim()
函数去除字符串的前后空格,就可以避免这个问题。 - Jordan Dodson使用.split(/[ ,]+/)
的建议很好,但是在处理自然语言句子时,最终你会得到空元素的数组,例如:['foo', '', 'bar']
。
如果这符合你的使用情况,那么就没问题了。但是如果你想去掉空元素,可以这样做:
var str = 'whatever your text is...';
str.split(/[ ,]+/).filter(Boolean);
Boolean()
构造函数时,它会将该值转换为布尔值 - true或false。因此,任何假值都将从数组中过滤掉,包括空字符串。 - jonschlinkert[1, 2, 3].map(String)
。 - jonschlinkertval.split(/[\s,]+/).filter(Boolean)
- Adam Fraser"foo, bar,,foobar,".split(/[\s,]+/)
返回 ["foo", "bar", "foobar", ""]
(因为末尾有一个悬挂逗号),谢谢! - Rafał Cieślak"my, tags are, in here".split(/[ ,]+/)
结果是:
["my", "tags", "are", "in", "here"]
input.split(/\s*[\s,]\s*/)
这段代码使用正则表达式 /\s*[\s,]\s*/
进行字符串分割。
\s*
匹配零个或多个空格字符(不仅是空格,还包括制表符和换行符)。
[\s,]
匹配一个空格字符或一个逗号。
test test
is resulting in ["t", "", "e", "", "s", "", "t", " ", "t", "", "e", "", "s", "", "t"]
- leonheess当我想考虑额外字符,比如逗号(在我的情况下,每个标记可能用引号输入),我会使用string.replace()将其他分隔符更改为空格,然后按空格拆分。
str_variable.replace(/[,'"]+/gi, ' ').split(' ')
- qräbnö \ s 匹配)和逗号以外的所有字符块,可以使用
console.log("my, tags are, in here".match(/[^\s,]+/g))
// => ["my","tags","are","in","here"]
请查看正则表达式演示。 String#match
提取除空格和逗号([^\s,]
)之外的一个或多个字符(+
)的所有非重叠出现。