我想删除所有的前导破折号(-
),并在JavaScript中用一个破折号替换所有重复的破折号。我已经开发了一个正则表达式来做到这一点:
"----asdas----asd-as------q---".replace(/^-+()|()-+$|(-)+/g,'$3')
它的工作原理是:
asdas-asd-as-q
但是我不理解
$3
部分(通过绝望的实验获得)。为什么不$1
? 最佳答案
您实际上可以在没有任何捕获组的情况下使用它:
"----asdas----asd-as------q---".replace(/^-+|-+$|-+(?=-)/g, '');
//=> "asdas-asd-as-q"
这里的
-+(?=-)
是正向超前,可确保匹配匹配项中除最后一个-
以外的1个或多个连字符。关于javascript - 使用正则表达式了解替换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25645419/