各种实用方法

下载文件

javascript 复制代码
 function  downloadUpload (url) {
      if ((/Trident\/7\./).test(navigator.userAgent) || (/Trident\/6\./).test(navigator.userAgent)) {
      // IE10/IE11
        var aLink = document.createElement('a')//创建a链接
        aLink.className = 'download_link'
        var text = document.createTextNode(' ')
        aLink.appendChild(text)
        aLink.href = url //将地址赋给a链接的href
        aLink.click() //点击a链接
      } else { // Chrome,Firefox
        var iframe = document.createElement('iframe')
        iframe.src = url
        iframe.style = 'display:none'
        document.body.appendChild(iframe)
      }
    }

下载文件

javascript 复制代码
  function  downloadGW() {
      let fileName = "xxx.docx";//自己文件的名字路径
      const a = document.createElement("a");//创建a链接
      const name = fileName || "";//文件名,带后缀
      a.href = fileName;//其实是给a链接赋值
      a.download = name;
      a.click();
      a.remove();
}

字符串获取数字和单位

javascript 复制代码
 function extractNumberAndUnit(str) {
  const regex =  /(-?\d+(\.\d+)?)\s*([a-zA-Z\u4e00-\u9fa5]+)?/;
  const match = str.match(regex);
  console.log(match,'match');
  if (match) {
      const number = match[1]? parseFloat(match[1]) : 0;
      const unit = match[3] || ''; // 如果单位不存在,则返回空字符串
      return { number, unit };
  } else {
      return { number:0, unit:'' }; // 如果没有找到匹配项,则返回null
  }
}

let a='1000米'
let number=extractNumberAndUnit(a).number='1000'
let unit=extractNumberAndUnit(a).unit='米'

从一个地址获取文件名

javascript 复制代码
function getFileNameFromUrl(url) {
  // 使用lastIndexOf方法找到最后一个'/'的位置
  var lastSlashIndex = url.lastIndexOf('/');
  // 如果找到了'/',则截取从最后一个'/'之后到字符串末尾的部分作为文件名
  if (lastSlashIndex !== -1) {
      return url.slice(lastSlashIndex + 1);
  }
  // 如果没有找到'/',则返回整个URL(虽然这通常不是文件名)
  return url;
}

let a='http://www.baidu.com/sisi/111.zip'
let filename=getFileNameFromUrl(a)='111.zip'

字符串变成json格式

javascript 复制代码
export function  formatJson(json) {
  try {
    const formattedJson = JSON.stringify(JSON.parse(json), null, 2);
    // return formattedJson
      return formattedJson.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
  } catch (e) {
      return json; 
  }
}

判断一个数组里的元素是否在一个字符串里(字符串是完整的,数组里的元素不完整)

javascript 复制代码
export function isMatch(array, string) {
  return array.some((item) => string.includes(item));
}

var a='sisi' let list=['si','aa','bb']
let bool=isMatch(list,a)=true

判断是否为空

javascript 复制代码
  function isEmpty(value) {
      return (
        Array.isArray(value) && value.length === 0 ||
        typeof value === 'string' && value.length === 0 ||
        value === null
      );
    }
相关推荐
剑亦未配妥1 小时前
移动端触摸事件与鼠标事件的触发机制详解
前端·javascript
人工智能训练师7 小时前
Ubuntu22.04如何安装新版本的Node.js和npm
linux·运维·前端·人工智能·ubuntu·npm·node.js
Seveny077 小时前
pnpm相对于npm,yarn的优势
前端·npm·node.js
yddddddy8 小时前
css的基本知识
前端·css
昔人'8 小时前
css `lh`单位
前端·css
前端君9 小时前
实现最大异步并发执行队列
javascript
Nan_Shu_61410 小时前
Web前端面试题(2)
前端
知识分享小能手10 小时前
React学习教程,从入门到精通,React 组件核心语法知识点详解(类组件体系)(19)
前端·javascript·vue.js·学习·react.js·react·anti-design-vue
蚂蚁RichLab前端团队11 小时前
🚀🚀🚀 RichLab - 花呗前端团队招贤纳士 - 【转岗/内推/社招】
前端·javascript·人工智能
孩子 你要相信光11 小时前
css之一个元素可以同时应用多个动画效果
前端·css