Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.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 - Fatal编程技术网

如何在javascript中使用正则表达式匹配此特定字符串,如果匹配,则将其设为空

如何在javascript中使用正则表达式匹配此特定字符串,如果匹配,则将其设为空,javascript,regex,Javascript,Regex,我有一根这样的绳子 ///cache ml/3/11204_gb.png///cache ml/3/16917_ar.png///cache ml/3/52871_au.jpg 我想将其与正则表达式匹配,如果匹配,则将字符串设为空 因此,我想检查字符串是否以“/”开头,以“.png |.jpg”结尾,然后删除/清空整个字符串 /(\/\/\/ cache ml\/\d\/\d{5}_..\.(png|jpg))+/i /是一个特殊字符,因此我们必须像这样对其进行转义\/ cache ml\/

我有一根这样的绳子

///cache ml/3/11204_gb.png///cache ml/3/16917_ar.png///cache ml/3/52871_au.jpg

我想将其与正则表达式匹配,如果匹配,则将字符串设为空

因此,我想检查字符串是否以“/”开头,以“.png |.jpg”结尾,然后删除/清空整个字符串

/(\/\/\/ cache ml\/\d\/\d{5}_..\.(png|jpg))+/i
  • /
    是一个特殊字符,因此我们必须像这样对其进行转义
    \/
  • cache ml\/3\/\
    此部件将匹配“cache ml\3\”,前提是它是稳定的
  • \d{5}
    将匹配任意5位数字
  • 匹配任意2个字符
  • 是一个特殊字符,因此我们必须像这样转义它。
  • (png | jpg)
    将匹配png或jpg
  • 我们将整个内容分组为一个组
    ()
    ,并使用
    +
    ,这意味着一个或多个,因此正则表达式将匹配一个以上的任意重复次数,而不是像您的示例那样仅匹配3次
  • 我们在结尾使用
    i
    使正则表达式不区分大小写
既然我们有了正则表达式,我们就这样使用它

var myString=“///cache ml/\d/11204_gb.png///cache ml/3/16917_ar.png///cache ml/3/52871_au.jpg”
var myRegex=/(\/\/\/cache ml\/3\/\d{5}\..\(png | jpg))+/i

var newString=myString.replace(myRegex,“”)
谢谢大家最后我修复了正则表达式,它就在这里

var text = scriptValue.replace(/(\/\/\/ cache ml\/\d\/[a-zA-Z0-9_]*\.(png|jpg|jpeg|gif))+/i, '');

您好,到目前为止您尝试了什么?到目前为止,我尝试了这个正则表达式scriptValue=“///cache ml/3/11204\u gb.png///cache ml/3/16917\u ar.png///cache ml/3/52871\u au.jpg”;var output=scriptValue.replace(/^\/\/\/\s[a-z]+^(png | jpg)$/,“”);问题还不清楚,您希望匹配字符串的哪些部分?您的代码确实有效,但我有一个例外,即52871_au这个名称是动态的;这可以是任何文件名。您能相应地更改代码并帮助我吗?更新答案,使用
*
代替文件名应该可以做到这一点。祝你好运:)别忘了接受答案,如果有帮助的话,请投赞成票。
[a-zA-Z0-9.*
这可以替换为
*
,因此它将匹配任何语言的任何数字或字符,而不仅仅是拉丁字母。因为我们使用了
i
标志,所以您不需要使用
a-zA-Z