Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >js正则表达式基础知识

js正则表达式基础知识

作者头像
用户6379025
发布于 2022-12-26 07:57:54
发布于 2022-12-26 07:57:54
27300
代码可运行
举报
文章被收录于专栏:莫凡莫凡
运行总次数:0
代码可运行
什么是正则

1.正则只能用来处理字符串 2.处理一般包含两方面: A:验证当前字符串是否符合某个规则 “正则匹配” B:把一个字符串中符合规则的字符获取到 “正则捕获” C:学习正则其实就是在学习如何编写规则,每一个正则都是由修饰符,“元字符””两部分组成

创建正则

.正则两个斜杠之间包起来的都是“元字符”,斜杠后面出现的都是“修饰符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 let reg=/[a-z]/igm  //=>字面量方式创建           
 let reg=new RegExp("[a-z]","igm")  //构造函方式创建
常用的元字符和修饰符

常用的修饰符

i:ignoreCase 忽略大写小匹配

m:multiline 多行匹配

g:global 全局匹配

常用的元字符

[特殊元字符]

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\d  0~9之间的一个数字
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\D0~9之间的任意字符
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\w  “数字、字母、下划线”中的任意一个 =>/[0-9a-zA-Z_]/等价于\w
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\s  匹配任意一个空白字符(包括\t制表符[TAB键四个空格]
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\b  匹配边界符  'zhu'(z左边和u右边就是边界)  'zhu-feng'(z左边、u右边、f左边、g右边是边界)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\n  匹配一个换行符
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\  转义字符(把一个普通字符转义为特殊的字符,例如:\d,把有特殊含义的转换为普通意思,例如:\. 此处的点就不是任意字符,而是一个小数点)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
. 不仅仅是小数点,代表除了\n以外的任意字符
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
^  以某个元字符开头
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$  以某个元字符结尾
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
x|y  x或者y中的任意一个(a|z...)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[xyz] x或者y或者z中的任意一个
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[^xyz] 除了x\y\z以外的任意字符
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[a-z] 获取a-z中的任意一个字符([0-9] 等价于\d ...)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[^a-z] 除了a-z的任意字符
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
()  正则分组
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(?:) 当前分组只匹配不捕获
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(?=) 正向预查
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(?!) 负向预查
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
...

[量词元字符:让其左边的元字符出现多少次]

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
* 出现零到多次
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
? 出现零到一次
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
+ 出现一到多次
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{n} 出现N
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{n,} 出现N到多次
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{n,m} 出现NM

[普通元字符]

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
只要在正则中出现的元字符(在基于字面方式创建),除了特殊和有量词意义的以外,其余的都是普通元字符
正则中括号[] 的细节
  • 1.中括号中出现的元字符一般都是代表本身含义的
  • 2.中括号中出现的两位数,不是两位数,而是两个数字中的任意一个
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let reg = /^.+$/;//=>一个正则设置了^和$,那么代表的含义其实就是只能是xxx
console.log(reg.test('n'));//=>true
console.log(reg.test('1'));//=>true
console.log(reg.test('nn'));//=>true
console.log(reg.test('\n'));//=>false

let reg = /^[.]+$/;   //代表本身含义的  .
console.log(reg.test('n'));//=>false
console.log(reg.test('1'));//=>false
console.log(reg.test('nn'));//=>false
console.log(reg.test('\n'));//=>false
console.log(reg.test('...'));//=>true

let reg = /^[\d]+$/; //=>\d在这里依然是0~9中的一个数字
console.log(reg.test('0'));//=>true
console.log(reg.test('d'));//=>false

let reg = /^[18]$/;//=>不加^和$代表字符串中只要包含xxx即可
console.log(reg.test('18'));//=>false
console.log(reg.test('1'));//=>true
console.log(reg.test('8'));//=>true

let reg = /^[12-65]$/;
console.log(reg.test('13'));//=>false 不是12~65
console.log(reg.test('7'));//=>false  这个正则的意思是 1或者2~6或者5
console.log(reg.test('3.5'));//=>false
正则小括号的特殊作用 ()
  • 1.改变的默认的优先级
  • 2.分组捕获
  • 3.分组引用
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let reg = /^18|19$/;
console.log(reg.test('18'));//=>true
console.log(reg.test('19'));//=>true
console.log(reg.test('1819'));//=>true
console.log(reg.test('189'));//=>true
console.log(reg.test('181'));//=>true
console.log(reg.test('819'));//=>true
console.log(reg.test('119'));//=>true

reg = /^(18|19)$/;
console.log(reg.test('18'));//=>true
console.log(reg.test('19'));//=>true
console.log(reg.test('1819'));//=>false
console.log(reg.test('189'));//=>false
console.log(reg.test('181'));//=>false
console.log(reg.test('819'));//=>false
console.log(reg.test('119'));//=>false

let reg = /^([a-z])([a-z])\2\1$/;//=>正则中出现的\1代表和第一个分组出现一模一样的内容...
console.log(reg.test('oppo'));
console.log(reg.test('poop'));

=>编写一个正则匹配身份证号码
let reg = /^\d{17}(\d|X)$/;//=>简单:只能匹配是否符合格式,不能提取出身份证中的一些信息
'130828199012040617'
=>130828 地域
=>19901204 出生年月
=>0617 倒数第二位:奇数=男  偶数=
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JavaScript正则表达式入门知识详细介绍
正则表达式,在各种语言(JS、Java、Php等)里面都是很常见的,而且语法都有相似之处。作为新手,第一次接触正则,可能一脸茫然,这是什么东西,语法这么奇怪。其实它的语法是有迹可循的,而且基本是规定的语法模式,只要掌握它的语法,你也可以写出属于你自己的正则表达式。
Javanx
2019/09/04
7580
JavaScript正则表达式入门知识详细介绍
js正则表达式转义字符-4.   正则表达式的使用
  2. 特点:灵活、逻辑性非常强、以非常简单的方式对字符串进行复杂的控制 3. 创建正则表达式
宜轩
2022/12/26
1.6K0
一文学会JavaScript中的正则表达式
正则表达式是用于匹配字符串字符组合的模式,在JavaScript中,正则表达式也是对象。
岳泽以
2022/10/11
3760
我攻克的技术难题:正则表达式
JS正则表达式作为一种强大的字符串处理工具,它可以匹配特定的字符串模式,并进行相关的操作,如查找、替换、截取等。对于正则表达式我们不可能去死记硬背所有的,但是我们需要学习概念和语法,做到能够看懂正则表达式和编写简单的正则表达式实现字符的查找和检测即可。本文主要是简要概括JS正则表达式的基本知识点,希望能够对你们有所帮助,如果有什么需要改进的地方还请各位大佬指出🤞
用户10637692
2024/01/25
1620
我攻克的技术难题:正则表达式
正则表达式入门
正则表达式是用来处理字符串的一种规则,它只能处理字符串,既可以用于验证字符串是否符合某个规则,也可以用于把字符串中符合规则的内容捕获到(exec/match...)。 例如:
六月丶
2022/12/26
2610
前端常用正则表达式
1. 身份证校验 const reg =/(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)/; console.log(reg.test(320874199709084732)) 2. 根据身份证获取出生年月日 functio
执行上下文
2022/07/26
3450
js正则表达式语法大全_JavaScript正则
​ 返回一个数组 [匹配内容,index:匹配的起始位置,input:要匹配的字符串, group:undefined]
全栈程序员站长
2022/11/08
3.7K0
第五节正则
----------------------------------正则的作用------------------------------------------- 正则:就是一个规则,用来处理字符串的一个规则(正则是用来处理字符串的) 处理: 1>匹配 判断一个字符串是否符合我们制定的规则 var reg = /\d/; console.log(reg.test("张")); console.log(reg.test("张3")); 2>捕获 把字符串中符合我们正则规则的
河湾欢儿
2018/09/06
4060
JavaScript——正则表达式
正则表达式 正则表达式是用于匹配字符串字符组合的模式,在JavaScript中,正则表达式也是对象。
卢衍飞
2023/02/16
1.3K0
手把手教你认识前端的正则表达式
该方法用来将字符串中的某些子串替换为需要的内容,接受两个参数,第一个参数可以为正则或者子字符串,表示匹配需要被替换的内容,第二个参数为被替换的新的子字符串。如果声明为全局匹配则会替换所有结果,否则只替换第一个匹配到的结果。
前端老鸟
2022/03/07
4590
正则表达式 RegExp(regular expression)
前端开发中,正则表达式常用于字符串匹配、验证输入的格式、替换字符串等操作。它是一个强大的工具,能够用一种灵活的方式来处理文本数据。在前端开发中,你可以利用正则表达式来实现诸如验证邮箱格式、手机号码格式、提取特定模式的文本等功能。
星辰大海c
2023/11/20
2930
正则表达式 RegExp(regular expression)
谈谈正则表达式
基础语法的东西,记住下相关的英文就比较好理解了,比如: digit指的是数字[0-9],转换为正则关键字为\d,而其大写\D则表示非digit,即非[0-9]。
Jimmy_is_jimmy
2019/07/31
3300
RegExp (正则表达式)
# 编写正则表达式 创建方式有两种 // 字面量创建方式 let reg1 = /\d+/; // 构造函数 参数:元字符字符串;修饰符字符串 let reg2 = new RegExp("\\d+
Cellinlab
2023/05/17
3430
正则表达式详解
正则表达式(regular expression)是一种表达文本模式(即字符串结构)的方法,有点像字符串的模板,常常用来按照“给定模式”匹配文本。比如,正则表达式给出一个 Email 地址的模式,然后用它来确定一个字符串是否为 Email 地址。JavaScript 的正则表达式体系是参照 Perl 5 建立的。
IT人一直在路上
2019/09/16
1.1K0
正则表达式
正则表达式( Regular Expression )是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。
梨涡浅笑
2022/05/08
4490
前端架构师之12_JavaScript正则表达式
正则表达式(Regular Expression,简称regexp)是一种描述字符串结构的语法规则。
张哥编程
2024/12/13
1130
正则表达式
正则表达式( Regular Expression )是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。
星辰_大海
2020/10/26
9800
正则表达式
js正则表达式梳理
正则表达式(Regular Expression): 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的租和,组成一个“规则字符串”,这个规则字符串用来表达对字符串的一种过滤逻辑。
心念
2023/01/11
5.5K0
前端进阶必须知道的正则表达式知识
正则表达式(Regular Expression) 是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个规则字符串,这个规则字符串用来表达对字符串的一种过滤逻辑。
石燕平
2019/12/03
7790
js正则表达式校验金额-js正则表达式简单校验方法
  对于字符串的一些操作,可以通过正则表达式来实现。一般的搜索操作想必大家已经学会,今天就来说说它的校验功能,这样可以帮助判断字符串类型或者是其它的组成,比如密码、中文、字符串的组成等。下面就js正则表达式的校验带来内容分享,同时要考虑在js中支持的类型。
宜轩
2022/12/29
9.4K0
相关推荐
JavaScript正则表达式入门知识详细介绍
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验