各种实用方法

下载文件

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
      );
    }
相关推荐
爱勇宝2 小时前
小红花成长新版:模板来了,鼓励也更容易开始
前端·后端·程序员
竹林8183 小时前
Solana前端开发:我在一个NFT铸造页面上被@solana/web3.js的Connection和Transaction签名坑了两天
前端
冬奇Lab3 小时前
每日一个开源项目(第144篇):ai-website-cloner-template - 一条命令、多 Agent 并行,把任意网站逆向成 Next.js 代码
前端·人工智能·开源
玄玄子3 小时前
webpack publicPath作用原理
前端·webpack·程序员
HduSy3 小时前
帮 Claude Code 做了个菜单栏 Token 看板,聊聊里面的一些实现逻辑
前端
minglie3 小时前
一个置换问题
javascript
用户059540174463 小时前
用了6个月LangChain,才发现AI Agent的记忆存储一直有坑——写了23个Pytest用例才彻底修好
前端·css
奶油mm3 小时前
我偷偷把公司的祖传 jQuery 项目改成了 Vue3,CTO 没发现,但全组都来抄我的代码了
前端
用户2136610035723 小时前
Vue2非父子通信与动态组件
前端·vue.js
默_笙3 小时前
🌀 别再手动写 Prompt 了!我让 AI 自己循环改到满意为止
javascript