我正在尝试通过以下字符数组拆分字符串:
"!", "%", "$", "@"
我考虑过使用正则表达式,所以我开发了以下我认为可以按字符拆分字符串的方法:
var splitted = string.split(/\!|%|\$|@*/);
但是,当我运行以下代码时,输出按每个字符拆分,这不是我所希望的:
var toSplit = "abc%123!def$456@ghi";
var splittedArray = toSplit.split(/\!|%|\$|@*/);
我怎样才能使 splittedArray
包含以下元素?
"abc", "123", "def", "456", "ghi"
感谢任何帮助。
最佳答案
@*
匹配空字符串,任意两个字符之间有一个空字符串,因此字符串在每个字符处被拆分。使用 +
代替:
/\!|%|\$|@+/
此外,如果您的意思是 +
应用于每个字符而不仅仅是 @
,那么将它们分组:
/(\!|%|\$|@)+/
或者更好的是,使用字符类。这让您可以省略反斜杠,因为这些字符在方括号内都不是特殊字符。
/[!%$@]+/
关于javascript - 在 JavaScript 中通过正则表达式拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13942631/