javascript - 在 JavaScript 中通过正则表达式拆分字符串

标签 javascript regex string split

我正在尝试通过以下字符数组拆分字符串:

"!", "%", "$", "@"

我考虑过使用正则表达式,所以我开发了以下我认为可以按字符拆分字符串的方法:

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/

相关文章:

javascript - 这两个正则表达式有什么区别? (理解?量词)

javascript - javascript 在 WordPress 中应该放在哪里,只有 single.php 才需要?

regex - 显示 count(1s) = count(0s) 的位串不规则

javascript - Laravel 5 Eloquent 对象和 ajax

javascript - 为什么我的网址中没有对点字符进行编码?

php - 如何在 laravel 中使用逗号分隔值的列使用 'where'

regex - 回溯正则表达式实现的优化技术

正则表达式匹配一个或多个字符

java - 如何将反斜杠后跟 't' 或文件路径中转义字符中的任何其他字母或字符替换为 java 中的正斜杠?

string - Rust:无法将整数解析为字符串,ParseIntError