Javascript 要匹配[anypath]/ui/[anyfile].png的Regexp
我有一组图像路径,如下所示:Javascript 要匹配[anypath]/ui/[anyfile].png的Regexp,javascript,regex,Javascript,Regex,我有一组图像路径,如下所示: a/asstes/ui/img1.png b/nested/source/ui/img.jpg ... 这个想法是,图像的路径和名称可以是随机的,但重要的部分是图像位于ui文件夹中,并具有jpg或png的扩展名 我可以使用什么正则表达式来检查这些条件的文件路径 到目前为止,我已经做到了这一点,/\ui\/img1\(png | jpg)$/这与a/asstes/ui/img1.png匹配正确,但理想情况下img1应该是动态的,因为文件名可以是任何东西 编辑理想情况
a/asstes/ui/img1.png
b/nested/source/ui/img.jpg
...
这个想法是,图像的路径和名称可以是随机的,但重要的部分是图像位于ui
文件夹中,并具有jpg
或png
的扩展名
我可以使用什么正则表达式来检查这些条件的文件路径
到目前为止,我已经做到了这一点,/\ui\/img1\(png | jpg)$/
这与a/asstes/ui/img1.png
匹配正确,但理想情况下img1
应该是动态的,因为文件名可以是任何东西
编辑理想情况下,它将匹配直接位于
/ui
下的图像。如果/ui/
必须是最后一个目录,请使用:
var测试=[
“a/asstes/ui/img1.png”,
'b/nested/source/ui/img.jpg',
'b/nested/ui/source/img.png',
];
console.log(test.map)(函数(a){
返回a+':'+/\/ui\/[^\/]+\.(png | jpg)$/.test(a);
}));代码>JS regex用于图像路径:
/(.*\/.*)+\.(png|jpg)$/
你的情况:
/(.*\/.*)+ui\/.*(png|jpg)$/
您可以尝试这样做:/\w+\/ui\/\w+\.\jpg\png$/
$使您始终在路径的最后输入一个jpg或png。只需将img1
替换为+?
@Toto即可,谢谢。?
增加了什么?我可以看到它也可以单独使用+
。这也匹配嵌套图像,理想情况下,图像应该直接在ui下匹配,如上所述/\ui\/.\.+(png | jpg)$/
只需添加+
即可匹配一个或多个对象times@ShankarRegmi我刚刚在问题中添加了编辑。是否可以修改此项以满足该要求?只有直接在/ui
文件夹下匹配图像,而不是嵌套的图像/\/ui\/[^.]+\.(png | jpg)$/i
将更有效(.*\/.*)+
或(.*\/.*)+
是灾难性的回溯。您应该在发布答案之前尝试一下。确定吗?使用/my dir-1/ui/my img file.png
或abc/ui/img.png
(必须匹配)和/abc/ui/png
(必须不匹配)进行测试