1

嗨,我无法更换五个“|||||” 到一个“|”。

var ss = "123|||||456|||||789|||||";
var ww = ss.replace(/[|||||]\W/g, "|");

我得到的输出是

123|||456|||789|||

我应该写什么正确的正则表达式?谢谢。

4

1 回答 1

3

您可以执行以下操作:

var ss = "123|||||456|||||789|||||";
console.log(ss.replace(/[|]{5}/g, "|"));

正如评论中提到的,[]定义了一个字符类并匹配其中定义的任何字符。例如[a-z]将匹配小写字母。

但是,由于您只需要匹配管道 ( |) 字符,因此可以删除括号并将其转义,如下所示:

console.log(ss.replace(/\|{5}/g, "|")); 

它需要用 a 转义,\因为管道是 java 脚本中的特殊字符。管道后面的花括号{5}定义了您想要匹配的“前一个”的数量。

于 2012-08-16T08:10:50.503 回答