首页 > 其他分享 >js 遍历替换

js 遍历替换

时间:2024-03-02 15:44:36浏览次数:27  
标签:index arr 遍历 res js content start push 替换

const replaceIterator = ( content, pattern, replacement )=>{

  let index = 0;
  let arr = [];
  
  while(true){
      const res = content.match(pattern);
      if(res === null){ 
        if(content.length){
          arr.push(content);
        }
        break;
      }
      start = res.index;
      start && arr.push(content.substring(0,start));
      arr.push(replacement.replace('$',index++));
      content = content.substring(start + res[0].length);
  }

  return arr;
}
console.log(replaceIterator('2112',/1/,'x$x')) 
/*
[
    "2",
    "x0x",
    "x1x",
    "2"
]
*/

升级:

const finder = ( content, pattern, callback )=>{
    let index = 0;
    let arr = [];
    while(true){
      const res = content.match(pattern);
        if(res === null){ 
          if(content.length){
            arr.push(content);
          }
          break;
        }
      start = res.index;
      start && arr.push(content.substring(0,start));
      arr.push(callback(res[0], index));
      content = content.substring(start + res[0].length);
    }

  return arr;
}


console.log(finder('123456', /1/, text=>{
    return 'a'
}).join(""))

 

标签:index,arr,遍历,res,js,content,start,push,替换
From: https://www.cnblogs.com/laremehpe/p/18046825

相关文章

  • 解决Puppeteersharp 被检测到的方法, 顺带学习了js如何实现 模拟点击拖动事件
    varlaunchOptions=newLaunchOptions{Headless=false,DefaultViewport=null,IgnoreHTTPSErrors=true,ExecutablePath=path+"\\.local-chromium\\chrome-win\\chr......
  • Windows安装node.js以及环境配置、常见npm镜像源、npm安装包报错 解决https证书过期 r
    一、Windows安装node.js以及环境配置1、下载Node.js安装包Node.js官方网站,选择LTS版本或者最新版本,然后点击下载按钮。.msi是软件安装包、.zip是压缩包,解压之后即可,不需要安装2、运行安装程序下载完成后,双击安装包运行安装程序。安装完成后,在Node的安装目录下创建两个......
  • vue3 js 方式实现学习时长正向计数器 时分秒转秒 秒转时分秒
    //学习时长constLocktime=ref('00:00:00');consttimeAlarmTWO=ref(null);consthour=ref(0);constminute=ref(0);constsecond=ref(10);constreckon=ref(true);//判断是否在计时//判断一下数值的变化consttimer=()=>{second.value=second......
  • 前端 xlsx js javascript 处理excel 数据展示 日期格式处理
     1、参考https://blog.csdn.net/Seven71111/article/details/107375712https://blog.csdn.net/weixin_44987713/article/details/130129282 https://blog.csdn.net/qq_57952018/article/details/134812452 2、存在的问题a、千年虫b、定义一个转换日期格式的方法(转成......
  • 实战2-__jsl_clearance_s 生成
    目标网站aHR0cHM6Ly96cnp5aGdoai5oZWZlaS5nb3YuY24veHd6eC9ic2R0L2luZGV4Lmh0bWw=1.简单介绍加速乐是创宇推出的一款在线免费网站CDN加速、网站安全防护平台,致力于系统化解决网站访问速度过慢及网站反黑客问题加速乐三步骤a.第一次请求,响应码521,服务器返回的Cookie中携带......
  • 买卖股票的最佳时机——差值的最值的遍历寻找
    题目描述:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。(1)只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算所能获取的最大利润。返回可以从这笔交易中获取的最大利润。如果不能获取任何利润......
  • Nestjs系列(一) Nestjs基础
    快速使用NestjsNest项目的文件层级和JAVA项目的层级架构较为相似。Nest项目的层级架构统一由ControllerModuleService三个模块组成。安装nestcli,创建项目npminstall-g@nestjs/clinestnew[项目名]项目默认运行至http://localhost:3000/上当nest版......
  • JS面试题
    1.判断一个函数是否标记为asyncfunctionisAsyncFunction(func){conststr=Object.prototype.toString.call(func);returnstr=='[objectAsyncFunction]';}2.两个大整数之和/***1.将两个数字对齐*2.从后往前循环,按位相加同时加上进位*3.计算进位*4.到最......
  • js使用a标签下载文件并指定名称
    当使用js下载路径带有xxxxx.png的路径图片时,下载下来的名称一直是xxxxx.png,有时候又需要指定文件名称,代码如下downFile(ShowUrl,Name){//ShowUrl表示路径Name表示需要的名称constx=newwindow.XMLHttpRequest();x.open('GET',ShowUrl,true);x.resp......
  • 国产低成本DP7344 192K 双通道 24 位 DA数模转换芯片 兼容替换CS4344
    数模转换芯片是一种将模拟信号转换为数字信号的电子元器件。它能够将来自传感器、麦克风等模拟信号输入,转换为数字信号输出,以便于处理、存储和传输。其基本工作原理是利用采样器对模拟信号进行连续采样,并且将每个采样值转化为对应的数字代码。这些数字代码经过编码器进行编码,输出......