javascript正则表达式...如何逃避连字符

时间:2013-03-07 21:39:37

标签: javascript regex replace

如何在替换语句中转义连字符

var lvs = "ui-btn ui-btn-up-XXX  ui-li ui-li-has-icon ui-btn-hover-e ui-btn-up-ZZZ" ;

var lvs = lvs.replace(/\bui-btn-up-[^\b]*?\b/gi , "" ) ;
alert( lvs);

我尝试过很多前后斜线的变化

4 个答案:

答案 0 :(得分:3)

我认为你使用单词break(\b)太复杂了。这不适用于你想要做的事情吗?

var lvs = lvs.replace(/ui-btn-up(-\w+)?/gi, "");

这也假设您要删除ui-btn-up的值。如果没有,请使用:

var lvs = lvs.replace(/ui-btn-up-\w+/gi, "");

答案 1 :(得分:1)

你想这样做:

var lvs = lvs.replace(/\sui-btn-up-\S+\s*?/gi , "" ) ;

答案 2 :(得分:1)

这对我来说没问题: -

lvs = "ui-btn ui-btn-up-XXX  ui-li ui-li-has-icon ui-btn-hover-e ui-btn-up-ZZZ" ;
var lvs = lvs.replace(/\bui-btn-up-\w*\s*/gi , "" ) ;
alert( lvs);

http://jsfiddle.net/keith_nicholas/6KA9T/

答案 3 :(得分:0)

您不必逃避-

'sonia-b-cat'.replace(/a-b-c/, '123') // 'sonia123at'

只有当它在一个字符类中时才需要用反斜杠

来转义它
'z-z'.replace(/[abc\-]/, '123') // 'z123z'