javascript - 用正则表达式替换我不优雅的代码

标签 javascript regex

我正在尝试编写一个正则表达式来将所有空格和逗号替换为 |。 例如:

809163294,12345678 12345678, 12345678

应该变成:

809163294|12345678|12345678|12345678

我正在努力处理正则表达式,但得到了 809163294||12345678|12345678|12345678

可以创建一个脚本来执行我想要的操作,但它看起来不优雅如何使用正则表达式。

'809163294,12345678 12345678, 12345678'.replace(/\W/g, ' ').split(' ').filter(Boolean).join('|')

如何更改代码以创建更优雅、更具可读性的解决方案?

最佳答案

这里是:您可以定义一个字符类(用“[]”插入您需要的所有字符,在本例中为\s(所有空格)和逗号。在字符类后面添加“+”表示该正则表达式必须找到一个或多个字符,因此如果您有“,”,所有字符都将被替换为一个“|”

console.log('809163294, 12345678 12345678 12345678'.replace(/[\s,]+/g,'|'))

P.s.修复了错误输入\W 代替\s,抱歉

关于javascript - 用正则表达式替换我不优雅的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46955995/

相关文章:

javascript - JS RegEx 即使应该匹配也不匹配

java - 如何替换java字符串中后面跟着的字母?

javascript - 如何使用 jQuery 单击按钮来选择下拉列表中的所有值?

javascript - 函数无法在 JavaScript 中正确执行

javascript - Firefox 中触发点击事件

php - 为什么这个正则表达式会失败?

python - 如何在python中使用正则表达式?

javascript - firebase 只获取 key 然后获取数据

javascript - Express - 在用作静态服务器之前编辑 HTML

regex - 如何从正则表达式中获取所有匹配项?