1

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

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

4 回答 4

3

我认为您使用断字符 ( \b) 使其过于复杂。这对你想做的事情不起作用吗?

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

这也假设您要删除ui-btn-up. 如果没有,那么使用:

var lvs = lvs.replace(/ui-btn-up-\w+/gi, "");
于 2013-03-07T21:56:32.147 回答
1

你想这样做吗:

var lvs = lvs.replace(/\sui-btn-up-\S+\s*?/gi , "" ) ;
于 2013-03-07T21:45:48.803 回答
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/

于 2013-03-07T21:54:39.173 回答
0

你不必逃避-

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

只有当它在字符类中时,您才需要使用反斜杠对其进行转义

'z-z'.replace(/[abc\-]/, '123') // 'z123z'
于 2013-03-07T21:44:37.870 回答