正则表达式替换字符串

时间:2012-11-13 20:36:17

标签: javascript jquery regex

如何编写正则表达式以删除双短划线 - 进入单个短划线 - 如果字符串开头或结尾用短划线替换为空字符串。

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

样本输入>>>>输出

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

3 个答案:

答案 0 :(得分:6)

链接取代怎么样:

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

Fiddle here

答案 1 :(得分:2)

oldString.replace(/-+/g,"-").replace(/(^-+)|(-+$)/g,"");

答案 2 :(得分:0)

这是一个应该有效的单一正则表达式:

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

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

现在,我知道你特意要求regexp,但很多像这样的替换也可以使用数组来完成(有时它们更快):

oldString.split(/-+/).filter(function(e){return !!e}).join('-')