如何编写正则表达式以删除双短划线 - 进入单个短划线 - 如果字符串开头或结尾用短划线替换为空字符串。
var oldString = "abc--xyz--"
var filtered = oldStringt.replace(???????);
样本输入>>>>输出
abc--xyz-- >>>>> abc-xyz
abc---xyz-123 >>>>> abc-xyz-123
--abc-xyz-123 >>>>> abc-xyz-123
答案 0 :(得分:6)
答案 1 :(得分:2)
oldString.replace(/-+/g,"-").replace(/(^-+)|(-+$)/g,"");
答案 2 :(得分:0)
这是一个应该有效的单一正则表达式:
oldString.replace(/^-+|-+$|(-)+/g, '$1')
现在,我知道你特意要求regexp,但很多像这样的替换也可以使用数组来完成(有时它们更快):
oldString.split(/-+/).filter(function(e){return !!e}).join('-')