当前位置: 首页 > article >正文

JavaScript判断是否是有效字符串

方法一:使用栈的存放数据思路,后进先出

    let str = "[{{{[][][{()}]}}}{}]]";
    const obj = { "(": ")", "[": "]", "{": "}" }; //定义一个前括号对应的后括号数据,便于后续取用
    const arr = []; //收集出现的前括号对应的括号
    let value = true;
    for (let i = 0; i < str.length; i++) {// 遍历
      if (str[i] === "{" || str[i] === "[" || str[i] === "(") {
        arr.push(obj[str[i]]);
      } else {
        let res = arr.pop(); //获取最后数据
        if (res !== str[i]) {
          value = false;
          break;
        }
      }
    }
    if (value && arr.length === 0) { //判断最后是否取空,如果最后一个不剩说明有效
      value = true;
    }
    console.log("输出结果", value);

方法二:直接将成对括号进行替换操作,最后结果为空则为有效

    let str = "[{{{[][][{()}]}}}{}]]";
    for (let i = 0; i < 100; i++) {
      const res =
        str.includes("{}") || str.includes("[]") || str.includes("()");
      if (res) {
        str = str.replace("[]", "");
        str = str.replace("{}", "");
        str = str.replace("()", "");
      }
    }
    console.log("输出结果", str);
    

http://www.kler.cn/a/392120.html

相关文章:

  • Python数据类型(一):bool布尔类型
  • influxDB 时序数据库安装 flux语法 restful接口 nodjsAPI
  • 深入解析 OpenHarmony 构建系统-4-OHOSLoader类
  • unity基础,点乘叉乘。
  • 带你掌握springboot集成SpringSecurity安全框架
  • 去地面算法——depth_clustering算法调试(1)
  • Webpack 中无法解析别名路径的原因及解决方案
  • Unet++改进20:添加RFAConv||用于特征冗余的空间和通道重构卷积
  • Pinia
  • 相亲小程序(源码+文档+部署+讲解)
  • sql专题 之 count()区别
  • 数据安全、信息安全、网络安全区别与联系
  • sql专题 之 sql的执行顺序
  • 网页web无插件播放器EasyPlayer.js播放器返回错误 Incorrect response MIME type 的解决方式
  • 做的图表配色太丑,怎么办?
  • react->Antd->Table调整checkbox默认样式
  • 贝式计算的 AI4S 观察:使用机器学习对世界进行感知与推演,最大魅力在于横向扩展的有效性
  • hive表名重命名、rename重命名
  • git config 保存密码
  • IT技术交流和分享平台(含报告)
  • golang分布式缓存项目 Day5 分布式节点
  • ssm093基于Java Web的毕业生就业状况管理系统设计与实现+jsp(论文+源码)_kaic
  • 谷歌浏览器支持的开发者工具详解
  • Linux符号使用记录
  • ubuntu20.04_从零LOD-3DGS的复现
  • 爬虫反爬机制和解决方案