嗨,我很难取代五个“|||||”到一个“|”。Javascript替换特殊字符
var ss = "123|||||456|||||789|||||";
var ww = ss.replace(/[|||||]\W/g, "|");
输出我得到的是
123|||456|||789|||
什么是正确的正则表达式我应该写? 谢谢。
嗨,我很难取代五个“|||||”到一个“|”。Javascript替换特殊字符
var ss = "123|||||456|||||789|||||";
var ww = ss.replace(/[|||||]\W/g, "|");
输出我得到的是
123|||456|||789|||
什么是正确的正则表达式我应该写? 谢谢。
你可以做到以下几点:
var ss = "123|||||456|||||789|||||";
console.log(ss.replace(/[|]{5}/g, "|"));
正如在评论中提到的,[]
定义字符类,并匹配任何在它定义的字符。例如[a-z]
将匹配小写字母。
但是因为你只需要管匹配(|
)字符,你可以删除括号并逃避它,像这样:
console.log(ss.replace(/\|{5}/g, "|"));
它需要因为管道是一种特殊要由\
逃脱在Java脚本中的字符。 管道后面的曲线符号{5}
定义了您想要匹配的“以前”的数量。
方括号'[]'的语法的意思是“匹配所附字符的任何__”。 (你应该用它来列出不同的字符。)在编写正则表达式时,可以方便地引用[正则表达式指南](https://developer.mozilla.org/en-US/docs/JavaScript/Guide/常用表达)。 – nnnnnn 2012-08-16 08:14:44