Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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 正则表达式匹配字符串';img&x27;仅在URL中(例如,不包括标记名)_Javascript_Regex_Replace - Fatal编程技术网

Javascript 正则表达式匹配字符串';img&x27;仅在URL中(例如,不包括标记名)

Javascript 正则表达式匹配字符串';img&x27;仅在URL中(例如,不包括标记名),javascript,regex,replace,Javascript,Regex,Replace,我需要使用RegEx来通过Grunt任务查找要替换的字符串 我想用它们的外部URL交换本地引用的图像URL。文件结构在本地和外部都是相同的 我需要在URL的开头查找/img或img(在img标记的src属性或CSS规则中)并在外部URL中交换 例如,查找/img/some photo.jpg或img/some photo.jpg并将/img或img替换为https://www.example.com/some-photo.jpg 我不能只查找img,因为这也会匹配以下HTML中的字符串,将标记转

我需要使用RegEx来通过Grunt任务查找要替换的字符串

我想用它们的外部URL交换本地引用的图像URL。文件结构在本地和外部都是相同的

我需要在URL的开头查找
/img
img
(在
img
标记的
src
属性或CSS规则中)并在外部URL中交换

例如,查找
/img/some photo.jpg
img/some photo.jpg
并将
/img
img
替换为
https://www.example.com/some-photo.jpg

我不能只查找
img
,因为这也会匹配以下HTML
中的字符串,将标记转换为

我可以这样排除
img
标记:


/\/img|(^ |[^\看起来您需要查看负向后查找,或者如果您的代码总是将属性括在单引号或双引号中,请将其包括在内


负查找解决方案类似于
(?它应该匹配没有
的任何字符串
img
,我对这个问题想得太多了

如果图像都在一个目录
img
中,那么我的标签后面应该跟一个正斜杠。标签(就这点而言,像
img{}
)这样的CSS规则后面不跟一个正斜杠,因此我只需要查找
img/
/img
/)的匹配项


这可以通过
/(\/?img\/)/gi

或换一种方式轻松实现:不要使用RegEx(单独使用)解析HTML。更幽默的是:使用HTML解析器解析HTML。有几种可以从Grunt使用。因为我使用的Grunt任务只能接受字符串来查找,或者只能接受正则表达式来查找匹配项。我个人希望使用Gulp和可以接受函数的任务。尽管我继承的代码库已经在使用Grunt和Grunt te谢谢。我使用的是JavaScript(Grunt是一个基于节点的任务运行程序),恐怕它不支持反向查找-我已经看过了:-)如果我能找到一种只匹配最后三个字符的方法,那可能会有用。哦,真的吗?我不知道,因为我只是对Grunt略知一二。引号解决方案仍然有效,你只需在替换文本中添加引号。或者甚至包括整个“src=\/?img”部分,以获得更具体的内容。