0

如何编写正则表达式以删除双破折号 - 变成单破折号 - 如果字符串以破折号开头或结尾,则替换为空字符串。

var oldString = "abc--xyz--"
var filtered = oldStringt.replace(???????); 

样本输入 >>>> 输出

abc--xyz--       >>>>>    abc-xyz
abc---xyz-123    >>>>>    abc-xyz-123
--abc-xyz-123    >>>>>    abc-xyz-123 
4

3 回答 3

6

链接如何替换:

str.replace(/[-]+/g, '-').replace(/[-]+$/g, '').replace(/^[-]+/g, '')

在这里拉小提琴

于 2012-11-13T20:43:20.607 回答
2
oldString.replace(/-+/g,"-").replace(/(^-+)|(-+$)/g,"");
于 2012-11-13T20:42:13.700 回答
0

这是一个应该可以工作的正则表达式:

oldString.replace(/^-+|-+$|(-)+/g, '$1')

测试:http: //jsfiddle.net/kd9g3/

现在,我知道您特别要求使用正则表达式,但是像这样的许多替换也可以使用数组来完成(有时它们更快):

oldString.split(/-+/).filter(function(e){return !!e}).join('-')
于 2012-11-13T21:06:12.227 回答