【JavaScript】正则表达式常用元字符使用方法(实例)

目录

  • 一、基本元字符
      • 1.`\d`
      • 2.`\D`
      • 3.`\s`
      • 4.`\S`
      • 5.`\w`
      • 6.`\W`
      • 7.`.`
      • 8.`\`
  • 二、边界符
      • 1.`^`
      • 2.`$`
      • 3.用 `^` 和 `$` 限制开头和结尾
  • 三、限定符
      • 1.`*`
      • 2.`+`
      • 3.`?`
      • 4.`{n}`
      • 5.`{n,}`
      • 6.`{n,m}`
  • 四、特殊符号
      • 1.`()`
      • 2.`|`
      • 3.`[]`
  • 五、exec()函数实例


一、基本元字符

1.\d

		//表示至少包含一位数字(0-9)var reg = /\d/;console.log(reg.test("abc")); //falseconsole.log(reg.test("123")); //true

\d\d

		//至少包含两位数字var reg = /\d\d/;console.log(reg.test("abc")); //falseconsole.log(reg.test("1")); //false

2.\D

		//至少包含一位非数字var reg1 = /\D/;console.log(reg1.test("abc")); //trueconsole.log(reg1.test("123")); //false

3.\s

		//至少有一位空白(空格 缩进 换行(\n))var reg3 = /\s/;console.log(reg3.test("12 ")); //trueconsole.log(reg3.test("12\n3")); //true,\n是换行

4.\S

		//至少包含一位非空白(空格 缩进 换行)var reg4 = /\S/;console.log(reg4.test("    1")); //trueconsole.log(reg4.test("\n\n\n")); //false,因为换行全是空白

5.\w

		//包含字母、数字、下划线var reg5 = /\w/;console.log(reg5.test("12asasa_")); //trueconsole.log(reg5.test("_")); //trueconsole.log(reg5.test("12")); //trueconsole.log(reg5.test("$")); //false

\w\w

		//至少包含两位字母、数字、下划线var reg5 = /\w\w/;console.log(reg5.test("12asasa_")); //trueconsole.log(reg5.test("_")); //falseconsole.log(reg5.test("12")); //trueconsole.log(reg5.test("$")); //false

6.\W

		//至少包含一位非字母、数字、下划线var reg6 = /\W/;console.log(reg6.test("12asasa_")); //falseconsole.log(reg6.test("_")); //falseconsole.log(reg6.test("12")); //falseconsole.log(reg6.test("$")); //true

7..

		//任意内容(不算换行)var reg7 = /./;console.log(reg7.test("%$!@")); //trueconsole.log(reg7.test("_c?\n")); //true,除了换行还有其它内容console.log(reg7.test("\n")); //false,但不能只包含换行console.log(reg7.test("\n\n\n\n")); //false

8.\

		//转义字符var reg8 = /\d.\d/; //其中的.代表任意字符var reg9 = /\d\.\d/; //加上转义字符\转义成了普通的点console.log(reg8.test("2.34")); //trueconsole.log(reg8.test("2#34")); //trueconsole.log(reg9.test("2.34")); //trueconsole.log(reg9.test("2a34")); //false,中间必须有. ,而不是任意字符

二、边界符

1.^

		//限制开头var reg = /^\d/; //必须以数字开头console.log(reg.test("3a1")); //trueconsole.log(reg.test("ah3")); //false

2.$

		//限制结尾var reg1 = /\d$/; //必须以数字结尾console.log(reg1.test("3a1")); //trueconsole.log(reg1.test("ah")); //false

3.用 ^$ 限制开头和结尾

        var reg2 = /^abc$/; //必须以abc开头,以abc结尾console.log(reg2.test("abc")); //trueconsole.log(reg2.test("ahbc")); //falseconsole.log(reg2.test("abch")); //false

三、限定符

1.*

		//代表0~n次var reg = /\d*/; //0个数字可以,1个或多个数字也可以console.log(reg.test("abc")); //trueconsole.log(reg.test("sd12j3")); //true

2.+

		//代表1~n次var reg1 = /\d+/; //包含1个或多个数字console.log(reg1.test("abc")); //falseconsole.log(reg1.test("s21dj3")); //true

3.

		//代表0~1次var reg2 = /\d?/; //console.log(reg2.test("abc")); //trueconsole.log(reg2.test("1ab")); //true

4.{n}

		//指定次数var reg3 = /\d{3}/; //出现三次数字,三个数字连续console.log(reg3.test("abc")); //falseconsole.log(reg3.test("1a2b3")); //falseconsole.log(reg3.test("123ab")); //true

5.{n,}

		// 代表>= n次var reg4 = /\d{3,}/; //大于等于三个数字,三个数字连续console.log(reg4.test("abc12")); //falseconsole.log(reg4.test("a12bc12")); //false,有四个数字但是不连续console.log(reg4.test("a123b")); //trueconsole.log(reg4.test("ab123456")); //true

6.{n,m}

		//代表n~m次var reg5 = /\d{3,5}/; //3~5个数字console.log(reg5.test("abc12")); //falseconsole.log(reg5.test("a123b")); //trueconsole.log(reg5.test("ab123456")); //true,虽然超过5了但是也是true,但是exec()函数只能捕获5个数字

四、特殊符号

1.()

		//代表整体var reg = /(abc){3}/; //包含三组abc,并且连续console.log(reg.test("abcabcabc")); //trueconsole.log(reg.test("abc213abcabc")); //false

2.|

		//代表或var reg1 = /a|b/; //包含a或bconsole.log(reg1.test("a213")); //trueconsole.log(reg1.test("123b")); //true

3.[]

        var reg2 = /[abcdef]/;//在[]中存在一个以上就对console.log(reg2.test("xyz")); //falseconsole.log(reg2.test("xyz123c")); //true,存在一个cvar reg3 = /[abcdef]{3,5}/; //[]中的字母要出现3~5次才对console.log(reg3.test("ab")); //falseconsole.log(reg3.test("efab")); //true//`[a-zA-Z0-9_]`包含大小写字母、数字、下划线,也就是基本元字符中的`\w`//同时`[0-9]`也就是基本元字符`\d`//`[^123]`只要有一个不在123范围内的就是true;^123表示必须以123开头,不带[]

五、exec()函数实例

exec() 方法用于检索字符串中的正则表达式的匹配,返回值是一个数组。

  • 使用方法如下:
		//exec()捕获片段var reg = /\d{3}/;//截取三个连续数字console.log(reg.exec("as1233km")); //'123'
  • 如何截取datestr中的年月日
 		var datestr = "time is from 2022-11-01 12:00:00 to 2022-12-01 12:00:00 ";var reg = /\d{4}-\d{1,2}-\d{1,2}/; //截取出年月日var newdatestr = reg.exec(datestr);//   console.log(newdatestr); //'2022-11-01'console.log(newdatestr[0].split("-").join("/")); //将连接符-换成/,结果是'2022/11/01'
  • 但是上面只能截取到第一个,加上全局标识符g,可以截取到第二个年月日
	  var datestr = "time is from 2022-11-01 12:00:00 to 2022-12-01 12:00:00 ";var reg = /\d{4}-\d{1,2}-\d{1,2}/g; //加上全局标识符g,可以截取到第二个年月日var newdatestr = reg.exec(datestr);console.log(newdatestr); //打印第一个日期:'2022-11-01'var newdatestr1 = reg.exec(datestr);console.log(newdatestr1); //打印第二个日期:'2022-12-01'


详细正则语法:https://www.baidufe.com/item/eb10deb92f2c05ca32cf.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/6999.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1 请使用js、css、html技术实现以下页面,表格内容根据查询条件动态变化。

1.1 创建css文件,用于编辑style 注意: 1.背景颜色用ppt的取色器来获取: 先点击ppt的形状轮廓,然后点击取色器,吸颜色,然后再点击形状轮廓的其他轮廓颜色,即可获取到对应颜色。 2.表格间的灰色线…

【Spring Boot】Web开发 — 数据验证

Web开发 — 数据验证 对于应用系统而言,任何客户端传入的数据都不是绝对安全有效的,这就要求我们在服务端接收到数据时也对数据的有效性进行验证,以确保传入的数据安全正确。接下来介绍Spring Boot是如何实现数据验证的。 1.Hibernate Vali…

生态合作丨MemFireDB通过麒麟软件NeoCertify认证

近日,敏博科技“MemFireDB分布式关系数据库系统V2.8”与麒麟软件“银河麒麟高级服务器操作系统V10” 完成兼容性测试,获得麒麟软件 NeoCertify 认证证书。测试结果显示,MemFireDB数据库在国产操作系统上运行稳定,产品已经达到通用…

RocketMQ集成Springboot --Chapter4

RocketMQ实现延时消费 rocketMQTemplate.syncSend(“helloTopicBoot”,msg,3000,3); 3000为等待消息回传时间,如果3000毫秒还没有回传即发送错误信息, 3为延时消费的时间 /***生产者*发送延时消息*/Testpublic void sendDelayMsg(){Message msg Message…

Mysql-DQL查询

目录 1.DQL 基本语法 基本查询 条件查询 聚合函数 分组查询 排序查询 分页查询 1.DQL 数据查询语言,用来查询数据库中表的记录。 查询关键字:select 基本语法 SELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字…

android studio(火烈鸟版本)使用protobuf

一、简介 Protobuf 全称:Protocol Buffers,是 Google 推出的一种与平台无关、语言无关、可扩展的轻便高效的序列化数据存储格式,类似于我们常用的 xml 和 json。 二、特点 Protobuf 用两个字总结:小,快。用 Protobu…

十大排序算法详解

目录 1. 冒泡排序 a. 思路 b. code 2. 插入排序 a. 思路 b. code 3. 希尔排序【插入排序plus】 a. 思路 b. code 4. 选择排序 a. 思路 b. code 5. 基数排序 a. 前置知识 b. 思路 c. code 6. 计数排序 a. 思路 b. code 7. 桶排序(计数排序plus &…

Could not resolve placeholder

本质原因:项目启动未扫描到该配置,一般来说是配置不对 检查方向 1、检查编译后的target包里是否有该配置所在的文件 如果不在就clear,重新编译启动再去检查 2、检查启动的环境是否匹配 编译后的target包下的配置文件名称是否跟启动类的环境…

【如何训练一个中译英翻译器】LSTM机器翻译模型部署之ncnn(python)(四)

ncnn:https://github.com/Tencent/ncnn 1、.h5模型保存为TFSaveModel格式 import tensorflow as tf from keras.models import load_model# 加载Keras模型 model load_model(encoder_model.h5)# 转换为SavedModel类型 tf.saved_model.save(model, TFSaveModel)2、…

Linux--assert函数在debug和release下的区别

在debug模式下断言才有效,而在release版本下,断言就无效了 在debug模式下,assert函数用于检查条件是否为真,如果条件为假,则会输出相应的错误信息,并停止程序执行。而在release模式下,assert函数…

redis的常用命令和数据结构

目录 redis的基本特征 Redis操作命令行 redis的数据结构 Redis的基本特征 键值型,value支持多种不同的数据结构,功能丰富 单线程,每个命令具备原子性 低延迟,速快(基于内存,IO多路复用,良好…

无涯教程-jQuery - html( val )方法函数

html(val)方法设置每个匹配元素的html内容。此属性在XML文档上不可用。 html( val ) - 语法 selector.html( val ) 这是此方法使用的所有参数的描述- val - 这是要设置的html内容。 html( val ) - 示例 以下是一个简单的示例&#xff0c;简单说明了此方法的用法- <…

【OpenCV】windows环境下,java OpenCV环境搭建,java 也可以实现opencv的功能了!opencv自由了

目录 1. 下载opencv 2. 安装opencv 目录 1. 下载opencv 2. 安装opencv 3. dll文件的导入配置 dll文件的导入&#xff1a; &#xff08;C的类库文件&#xff09;&#xff0c;opencv是c开发的类库&#xff0c;java语言要调用其中的方法&#xff0c;所以依赖了dll文件 3.1…

前端框架学习-Vue(一)

Vue简介 百度百科上关于vue的词条&#xff0c;说vue时一款渐进式JavaScript框架&#xff0c; 简单来说,渐进式是一种设计理念,即在不失去当前功能的前提下,逐步添加新的特性。 说明它时一直在进行维护的。 Vue3&#xff0c;中使用*.vue作为文件后缀&#xff0c;html&#xff0c…

解决安装依赖时报错:npm ERR! code ERESOLVE

系列文章目录 文章目录 系列文章目录前言一、错误原因二、解决方法三、注意事项总结 前言 在使用 npm 安装项目依赖时&#xff0c;有时会遇到错误信息 “npm ERR! code ERESOLVE”&#xff0c;该错误通常发生在依赖版本冲突或者依赖解析问题时。本文将详细介绍出现这个错误的原…

git指定tag只拉取某个release版本代码,节约贷款

采用-b指定tag&#xff0c;--depth1指定只拉取最后一个版本的代码&#xff0c;日志如下 yeqiangyeqiang-MS-7B23:~/Downloads/src$ git clone --depth1 -b 7cbf1a2 https://github.com/llvm/llvm-project 正克隆到 llvm-project... warning: 不能发现要克隆的远程分支 7cbf1a2…

R语言机器学习之影像组学分析的原理详解

概要 影像组学从常规医学图像中高通量提取大量的放射学定量数据&#xff0c;并以非侵入性方式探索它们与临床结果的相关性&#xff0c;在医学研究中得到广泛的应用。 01 影像组学&#xff08;Radiomics&#xff09;的概念&#xff1a; 影像组学&#xff08;Radiomics&#xff…

React Context(上下文)

1 Context Context 通过组件树提供了一个数据传递的方法&#xff0c;从而避免了在每一个层级手动传递props属性。 有部分小伙伴应该使用props属性进行组件上下传值的操作。当多个组件嵌套的时候&#xff0c;就需要慢慢向上寻找最初的值是什么。 2 API React.createContext:…

Jmeter之Beanshell解析并提取json响应

1&#xff1a;前置条件 将fastjson-1.2.49.jar包置于jmeter的lib目录下&#xff0c;并将该jar包添加到测试计划的Library中&#xff1b;否则会报&#xff1a;Typed variable declaration : Class: JSONObject not found in namespace的错误 2&#xff1a;解析思路 利用beansh…

了解Unity编辑器之组件篇UI(一)

UI组件&#xff1a;提供了用户交互&#xff0c;信息展示&#xff0c;用户导航等功能 一、Button&#xff1a;用于响应用户的点击事件 1.Interactable&#xff08;可交互&#xff09;&#xff1a;该属性控制按钮是否可以与用户交互&#xff0c;如果禁用则按钮无法被点击。可以通…