javascript 判断字符串是否是图片路径?
我有一个不确定的字符串:有可能是: http://www.baidu.com
(代表url地址路径)
也有可能是:http://www.xxxx/xxx/abc.png
(代表图片)
怎么才能判断这个字符串是否是图片?
javascript 判断字符串是否是图片路径?
我有一个不确定的字符串:有可能是: http://www.baidu.com
(代表url地址路径)
也有可能是:http://www.xxxx/xxx/abc.png
(代表图片)
怎么才能判断这个字符串是否是图片?
想到webpack对于图片的打包有感。
正则
图片正则
const PICTURE_EXPRESSION = /\.(png|jpe?g|gif|svg)(\?.*)?$/
const picReg = new RegExp (PICTURE_EXPRESSION)
url正则
const URL_REGULAR_EXPRESSION = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/
const objExp = new RegExp(URL_REGULAR_EXPRESSION)
进行你的判断吧~
1、正则匹配url
后缀名,简单,适用性差,答案楼上都是;
2、监听img
的error
事件,不管后缀名什么样,只要url
放在img
的src
里能加载成功就算,适用性强;
let strArr = [
"http://www.baidu.com",
"https://static.segmentfault.com/v-5ab0701d/global/img/social-icons/icon-sn.svg",
"https://sfault-avatar.b0.upaiyun.com/151/837/1518375183-54f135ef0d731_small"
];
function getPromises(src) {
let img = document.createElement("img");
img.src = src;
return new Promise(function(resolve, reject) {
img.onerror = () => {
resolve(undefined);
};
img.onload = () => {
resolve(src);
};
});
}
Promise.all(strArr.map(src => getPromises(src))).then(data => {
console.log(data);
// [
// undefined,
// "https://static.segmentfault.com/v-5ab0701d/global/img/social-icons/icon-sn.svg",
// "https://sfault-avatar.b0.upaiyun.com/151/837/1518375183-54f135ef0d731_small"
// ];
});
这里就把不能作为img
的src
的url
置为undefined
唉,直接截取格式进行判断阿
var url = 'http://www.baidu.com ';
var sub = url.substring(url.length-1,url.lastIndexOf('.'));
if(sub === '.com' || sub === '.cn'){
console.log('是的,这个是网址')
}else{
console.log('是的,这个是图片')
}
写了一个正则,这个应该不错:
function check_is_img(url) {
return (url.match(/\.(jpeg|jpg|gif|png)$/) != null)
}
const url = 'http://www.xxxx/xxx/abc.png';
if(/.(png|jpg|jpeg|gif)$/g.test(url)) {
//为图片
} else {
//不是图片
}
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答841 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
其他图片自己加