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

809163294,12345678 12345678, 12345678

应该变成:

809163294|12345678|12345678|12345678

我在正则表达式方面苦苦挣扎,但得到了809163294||12345678|12345678|12345678

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

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


如何更改代码以创建更优雅,更易读的解决方案?

最佳答案

它是这样的:您可以定义一个字符类(使用“ []”插入所需的所有字符,在这种情况下为\ s(所有空格)和逗号。在字符类后添加“ +”表示必须输入regexp找到一个或多个字符,因此如果您有“”,则所有字符将被一个“ |”替换



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





P.s.修复了错误键入的\ W代替\ s的情况,对不起

08-07 19:18