javascript正则表达式。。。如何避开连字符
如何在replace语句中转义连字符javascript正则表达式。。。如何避开连字符,javascript,regex,replace,Javascript,Regex,Replace,如何在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); 我尝试了许多前后斜杠的变体您不必逃避- 'sonia-b-cat'.replace(/a-b-c/, '123') // 'sonia123at'
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);
我尝试了许多前后斜杠的变体您不必逃避
-
'sonia-b-cat'.replace(/a-b-c/, '123') // 'sonia123at'
只有当它在字符类中时,才需要使用反斜杠对其进行转义
'z-z'.replace(/[abc\-]/, '123') // 'z123z'
您不必转义
-
'sonia-b-cat'.replace(/a-b-c/, '123') // 'sonia123at'
只有当它在字符类中时,才需要使用反斜杠对其进行转义
'z-z'.replace(/[abc\-]/, '123') // 'z123z'
你想这样做吗:
var lvs = lvs.replace(/\sui-btn-up-\S+\s*?/gi , "" ) ;
你想这样做吗:
var lvs = lvs.replace(/\sui-btn-up-\S+\s*?/gi , "" ) ;
这对我来说没问题:-
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);
这对我来说没问题:-
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);
我认为你把分词字符(
\b
)弄得太复杂了。这对你想做的事情不起作用吗
var lvs = lvs.replace(/ui-btn-up(-\w+)?/gi, "");
这也是假设您要删除ui btn up
的值。如果没有,则使用:
var lvs = lvs.replace(/ui-btn-up-\w+/gi, "");
我认为你把分词字符(
\b
)弄得太复杂了。这对你想做的事情不起作用吗
var lvs = lvs.replace(/ui-btn-up(-\w+)?/gi, "");
这也是假设您要删除ui btn up
的值。如果没有,则使用:
var lvs = lvs.replace(/ui-btn-up-\w+/gi, "");
如果你解释一下你想要什么结果,例如,你试图从字符串中删除什么部分,可能会容易一些。你有什么问题?我不认为连字符在JavaScript正则表达式中是一个特殊的字符;它不需要逃脱。参考资料:.@DavidThomas不是,你是对的,这就是为什么我想知道实际的问题是什么?我想问题可能在于
[^\b]
(猜测)-我会写*?\b
。如果你解释你想要什么结果,可能会更容易一些,例如,您试图从字符串中删除的部分。您有什么问题?我不认为连字符在JavaScript正则表达式中是特殊字符;它不需要逃脱。参考资料:.@DavidThomas不是,你是对的,这就是为什么我想知道实际问题是什么?我认为问题可能与[^\b]
有关(猜测)-我会写*?\b
。这是我的想法,但我发布的示例无法搜索是否包含连字符,这是我的想法,但我发布的示例无法搜索是否包含连字符