JS正则表达式入门篇
时间:2022-04-25
本文章向大家介绍JS正则表达式入门篇,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
兰翠 就职于爱屋吉屋,出身后端现混迹于前端
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本,即只对字符串操作。
基本写法:
var reg = /a/;var reg = new RegExp('a'); //当正则需要传参,则只能用 new RegExp(paramName);正则默认匹配规则:正则匹配成功就会结束,不会继续匹配//i: 不区分大小写写法:var reg = /B/i, var reg = new RegExp('B', 'i')//g: 全局匹配,写法:var reg = /B/g, var reg = new RegExp('B', 'g')
正则表达式常用方法:
test: 正则去匹配字符串,如果匹配成功就返回真,失败就返回假 写法: reg.test(str) eg: /d/g.test('123') // true
search: 正则去匹配字符串,如果匹配成功,就返回匹配成功的位置,如果匹配失败就返回-1 写法: str.search(reg) eg: 'abcdef'.search(/c/) // 2
match: 正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,如果匹配不成功,就返回null 写法: str.match(reg) eg: 'ab1cd12ddf456df'.match(/d/g) // 返回: [1, 12, 456] 注意: 当match不加g的时候,可以获取到子项的集合 eg: 'abc'.match(/(a)(b)(c)/) // 返回:[abc, a, b, c]
replace: 正则去匹配字符串,匹配成功的字符去替换成新的字符串 写法: str.replace(reg, replace) // replace:第二个参数,可以是字符串,也可以是一个回调函数 eg: str.replace(reg, 'aa') eg: var str = '2017-01-12' var reg = /(/d)(-)/g str.replace(reg, function($0, $1, $2) { // 第一个参数:$0(母亲), // 第二个参数:$1(第一个孩子), // 第三个参数:$2(第二个孩子) console.log($0); // 2017- console.log($1); // 2017 console.log($2); // - })
正则表达式语法:
转义字符:.(点)---任意字符.: 真正的点s: 任何不可见字符,包括空格、制表符、换页符等等。等价于[ fnrtv]。S: 非不可见字符d: 数字D: 非数字w: 字符 (字母,数字,下划线)W: 非字符b: 独立的部分(起始, 结束, 空格) // 'onetwo'.test(/bone/) —> true; 'onetwo'.test(/oneb/) —> falseB: 非独立的部分1: 重复的子项 //1重复的第一个子项,2重复的第二个子项 eg:'abca'.test(/(a)bc1/), '<li></li>'.test(/<(w)></1>/) eg: 查找重复字符串的字符和个数 var reg = /(w)1+/ var str = 'assssdfdbdsssdfdfsdssdsdssss' var arr = str.split('').sort() var index = 0, value='' arr.replace(reg, function ($0, $1) { if ($0.length > index) { index = $0.length value = $1 } })
量词:匹配不确定的个数{a, b}: 最少出现a次,最多出现b次 {4,7}:<=4&&>=7, {4,}:最少4次,{4}:正好4次+: 相当于{1,}, 至少出现一次>=1次?: 相当于{0, 1},0-1次*: 相当于{0,},至少出现0次^:正则的最开始位置,就代表起始的意思$:正则的最后位置,就代表结束的意思eg:匹配QQ号,5~12位,不能是0开头 var reg = /^[1,9]d{4,-11}$/ '0123434aa'.test(reg) —>falseeg: 替换字符串的前后空格 var reg = /^s|s$/ ' hello '.replace(reg, '')
匹配子项:(): 小括号,分组操作, // 把正则的整体叫做(母亲) // 然后把左边第一个小括号里的正则,叫做这个第一个子项(母亲的第一个孩子),第二个小括号就是第二个孩子[]: 一组相似的元素[abc], [a-z0-9],[^>] // 'ab'.test(/[abc]/)|: 或者
- 施工现场的机器人会不会逃跑?
- 不用@微信官方了,Python20行自动戴帽!
- BAT人工智能生态时局图:全面战争爆发前夜
- AI博弈论:DeepMind让智能体在非对称博弈中找纳什均衡
- 斯坦福吴恩达团队公布最大医学影像数据集
- Rokid祝明铭:大腿我们不抱,人机交互产品形态未定 | 变局者
- 腾讯AI让二子,柯洁还是输了
- AI创业者的“英雄联盟”,腾讯AI加速器二期项目招募开启
- PyTorch发布一周年:盘点社区和工程大事件,后来者居上态势已显?
- 2018年AI如何发展?普华永道做出了8点预测 | 报告下载
- 不正之风!机器学习论文里都有哪四大投机取巧的写作手法?
- 前端写一个月的原生 Android 是怎样一种体验?
- 给人挖矿还不自知 电脑已变黑客肉鸡
- 反序列化漏洞屡被黑客利用,危害巨大,代码怎样写才安全?
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 图片:“给你五十行代码把我变成字符画!” 程序:“太多了,一半都用不完!”
- HTML布局标记和列表标记
- 使用frp搭建内网穿透
- CNS图表复现03—单细胞区分免疫细胞和肿瘤细胞
- C#记事本项目开发,一个可以实现批量操作的记事本!【附源码】
- Python 库引用问题:name 'json' is not defined,原因及解决办法
- Java集合类之Collection接口,集合的“爸爸”接口了解一下?
- Python 微信机器人-下载微信接收到的语音、图片等资源
- Python源文件打包成可执行的exe应用,给你的代码变个身!
- Python 技术篇-ffmpeg.exe的安装及配置
- Python 库配置问题-"Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work",原因及解决办法
- 小白都能看懂的简单爬虫入门案例剖析(爬虫入门看它就够了!)
- Python 技术篇-音频mp3格式转wav格式,高保真
- Python3 模块
- Python 微信机器人-向好友发送名片、转发名片