js 判定一个string是否是正常的正则

news/2024/7/8 2:25:28

需求:

  • 需要对一个字符串做一个正则匹配,但是在匹配之前,我们需要先判定一下正则是否是正常的

进程:

  • 在js 中有两种模式可以创建正则表达式
    • 1、通过class RegExp 来创建 const regexA = new RegExp("test", "ig")
    • 2、直接通过string 来创建 const regexB = /test/ig
  • 两者在创建出来之后对应的类型都是 RegExp
  • 如果传入的字符串参数不是一个标准的正则格式,就会报出一个异常所以在使用的时候需要做一个try…catch…
  • 那解决方案就出来了
    • 1、使用class
 try {
    isReg = new RegExp("test", "ig") instanceof RegExp
  } catch (e) {
    isReg = false
  }
    • 2、使用string
try {
    isReg = /test/ instanceof RegExp
  } catch (e) {
    isReg = false
  }
try {
    isReg = eval("/test/") instanceof RegExp
  } catch (e) {
    isReg = false
  }

拓展:

  • eval 可以讲一个字符串变成一个脚本来执行,也就是eval("/test/") === /test/
  • 上面的 instanceof RegExp也可以不执行,因为一旦创建成功,那就说明肯定是正常可执行的正则,如果失败了那就会走catch 逻辑,所以 instanceof RegExp可有可无,demo 里主要是为了可读性强一点,如果为了极致的效率,可以不要

http://lihuaxi.xjx100.cn/news/2090533.html

相关文章

云原生应用(3)之Docker容器镜像操作命令

一、 Docker 容器镜像操作 1.1 查看本地容器镜像 1.1.1 使用Docker images命令查看 # docker images REPOSITORY TAG IMAGE ID CREATED SIZE bash latest 5557e073f11c 2 weeks ago 13MB nginx latest 605c77e624dd 3 week…

java:修饰符

一、包的概述和使用 其实就是文件夹; 作用:对类进行分类管理; 二、权限修饰符 权限修饰符在不同场景下访问总结 修饰符同一个类中同一个包中子类无关类不同包的子类不同包的无关类private是默认是是protected是是是public是是是是 三、…

十大Linux发行版各自的特色

Linux有许多不同的发行版,每个发行版都有自己的特色和用途。以下是一些主流Linux发行版及其特色: Ubuntu 用户友好,适合Linux新手。 基于Debian,拥有庞大的软件库。 长期支持(LTS)版本提供长达5年的支持…

Selenium操作浏览器,弹出文件选择框,实现自动选定“目标文件”

前言 本文是该专栏的第20篇,后面会持续分享python爬虫干货知识,记得关注。 我们在使用selenium操作目标页面的时候,可能会遇到如下图所示的情景。 在用selenium操作并点击页面元素的时候,会弹出一个文件选择框,需要我们选择目标文件,并点击确认按钮,目标文件才能上传成…

Python import 跟 Java import 有什么区别?

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…

鸿蒙 线程模型

前提:基于官网3.1/4.0文档。参考官网文档 基于Android开发体系来进行比较和思考。(或有偏颇,自行斟酌) 一、概念 HarmonyOS应用中每个进程都会有一个主线程,主线程有如下职责: 执行UI绘制; 管理…

Python数据分析实验一:Python数据采集与存储

目录 一、实验目的与要求二、实验过程三、主要程序清单和运行结果1、爬取 “中国南海网” 站点上的相关信息2、爬取天气网站上的北京的历史天气信息 四、程序运行结果五、实验体会 一、实验目的与要求 1、目的: 理解抓取网页数据的一般处理过程;熟悉应用…

α突触核蛋白神经退行性疾病--StressMarq

Alpha突触核蛋白科研背景 • Alpha突触核蛋白约 15kDa, 140个氨基酸 • StressMarq在E. coli中过表达人源基因然后将蛋白从细胞质基质中纯化出来 • 未折叠的alpha突触核蛋白单体在12% SDS-PAGE上为~15 kDa的条带 StressMarq/欣博盛生物的Alpha突触核蛋白有以下两类&#xf…