鍍金池/ 問答/HTML/ javascript 判斷字符串是否是圖片路徑

javascript 判斷字符串是否是圖片路徑

javascript 判斷字符串是否是圖片路徑?

我有一個不確定的字符串:有可能是: http://www.baidu.com (代表url地址路徑)
也有可能是:http://www.xxxx/xxx/abc.png (代表圖片)

怎么才能判斷這個字符串是否是圖片?

回答
編輯回答
安若晴

1、正則匹配url后綴名,簡單,適用性差,答案樓上都是;
2、監(jiān)聽imgerror事件,不管后綴名什么樣,只要url放在imgsrc里能加載成功就算,適用性強;

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"
  // ];
});

這里就把不能作為imgsrcurl置為undefined

2017年12月24日 03:32
編輯回答
涼汐

寫了一個正則,這個應(yīng)該不錯:

function check_is_img(url) {
  return (url.match(/\.(jpeg|jpg|gif|png)$/) != null)
}

2017年8月11日 00:15
編輯回答
朕略萌

唉,直接截取格式進(jìn)行判斷阿

var url = 'http://www.baidu.com ';
var sub = url.substring(url.length-1,url.lastIndexOf('.'));
if(sub === '.com' || sub === '.cn'){
console.log('是的,這個是網(wǎng)址')
}else{
console.log('是的,這個是圖片')
}

2018年8月10日 17:40
編輯回答
終相守

好像不是圖片路徑的也可以是圖片。對于網(wǎng)址來說圖片只是一種輸出方式。和路徑無關(guān)吧

2017年10月17日 17:43
編輯回答
乞許

想到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)
進(jìn)行你的判斷吧~
2018年1月15日 17:04
編輯回答
空痕
const url = 'http://www.xxxx/xxx/abc.png';

if(/.(png|jpg|jpeg|gif)$/g.test(url)) {
    //為圖片
} else {
    //不是圖片
}
2018年6月11日 02:09
編輯回答
不二心
url.split('.')[1]=='png'||url.split('.')[1]=='jpg'

其他圖片自己加

2017年6月7日 05:48