使用javascript正则表达式提取图像路径
我使用ajax从web服务请求信息,该服务为我返回图像,我需要在代码中使用图像 我对这项服务的问题是返回文本的差异:使用javascript正则表达式提取图像路径,javascript,regex,Javascript,Regex,我使用ajax从web服务请求信息,该服务为我返回图像,我需要在代码中使用图像 我对这项服务的问题是返回文本的差异: 表格1:“/site/images/test.png” 表格2:“/site/images/test.png?大小=3” 表格3:“” 表格4:“” 表格4:“” 表单5:“返回空字符串” 此服务从遗留系统带来数据,根据用户当时的输入,我无法更改此服务。我需要一种使用JavaScript提取图像路径的方法。此路径应仅为不带任何标记或查询字符串的图像路径 注意:图像扩展可以是任
- 表格1:“/site/images/test.png”
- 表格2:“/site/images/test.png?大小=3”
- 表格3:“
” - 表格4:“
” - 表格4:“
” - 表单5:“返回空字符串”
注意:图像扩展可以是任何类型这是您应该使用的正则表达式:
.*?(\/[\/\w\.]+)[\s\?]?.*
看看它在行动上
如何在Javascript中使用它:
var rex = /.*?(\/[\/\w\.]+)[\s\?]?.*/;
var res = rex.exec("<img src='/site/images/test.png?size=3' />");
console.log(res[1]); //Will print /site/images/test.png
var rex=/.*(\/[\/\w\.]+)[\s\?].*/;
var res=rex.exec(“”);
console.log(res[1])//将打印/site/images/test.png
链接到。尝试此正则表达式,将匹配所有图像:
/(\/.*?\.\w{3})/img
您的代码可能如下所示:
var image = "<div><img src='/site/images/test.png?size=3' /></div>";
result = image.match(/(\/.*?\.\w{3})/img);
console.log(result[0]);
(\/.*\.\w+)
您可以使用如下简单的正则表达式:
var image = "<div><img src='/site/images/test.png?size=3' /></div>";
result = image.match(/(\/.*?\.\w{3})/img);
console.log(result[0]);
(\/.*\.\w+)
Javascript代码
var re = /(\/.*\.\w+)/g;
var str = 'Form 1: "/site/images/test.png"\nForm 2: "/site/images/test.png?size=3"\nForm 3: "<img src=\'/site/images/test.png />"\nForm 4: "<img src=\'/site/images/test.png?size=3\' />"\nForm 4: "<div><img src=\'/site/images/test.png?size=3\' /></div>"\nForm 5: "" return empty string';
var m;
if ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}
var re=/(\/.\.\w+)/g;
var str='表格1:“/site/images/test.png”\n表格2:“/site/images/test.png?size=3”\n表格3:\n表格4:\n表格4:\n表格5:“返回空字符串”;
var-m;
如果((m=re.exec(str))!==null){
如果(m.index==re.lastIndex){
re.lastIndex++;
}
//使用m变量查看结果。
//例如m[0]等。
}
请澄清,您需要完整路径还是文件名?