如何在JavaScript中拆分具有多个分隔符的字符串?

2022-08-29 22:34:51

如何在JavaScript中拆分具有多个分隔符的字符串?

我试图在逗号空格上拆分,但AFAIK JavaScript的函数只支持一个分隔符。split()


答案 1

传入正则表达式作为参数:

js> "Hello awesome, world!".split(/[\s,]+/)
Hello,awesome,world!

编辑以添加:

您可以通过选择数组的长度减去 1 来获取最后一个元素:

>>> bits = "Hello awesome, world!".split(/[\s,]+/)
["Hello", "awesome", "world!"]
>>> bit = bits[bits.length - 1]
"world!"

...如果模式不匹配:

>>> bits = "Hello awesome, world!".split(/foo/)
["Hello awesome, world!"]
>>> bits[bits.length - 1]
"Hello awesome, world!"

答案 2

您可以将正则表达式传递到 JavaScript 的 split() 方法中。例如:

"1,2 3".split(/,| /) 
["1", "2", "3"]

或者,如果要允许多个分隔符一起充当一个分隔符,

"1, 2, , 3".split(/(?:,| )+/) 
["1", "2", "3"]

(您必须使用非捕获括号,否则它将拼接到结果中。或者你可以像Aaron一样聪明,使用角色类。(?:)

在 Safari 和 Firefox 中测试的示例。