Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript正则表达式。。。如何避开连字符_Javascript_Regex_Replace - Fatal编程技术网

javascript正则表达式。。。如何避开连字符

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'

如何在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'
只有当它在字符类中时,才需要使用反斜杠对其进行转义

'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
。这是我的想法,但我发布的示例无法搜索是否包含连字符,这是我的想法,但我发布的示例无法搜索是否包含连字符