【JS】JavaScript正则表达式基础
目录
- 一、正则表达式基础
- 二、JS字符串使用正则表达式
- (1)、新建正则表达式对象
- (2)、方法
- (3)、使用
- 三、Regexper
正则表达式在几乎所有语言中都可以使用,无论是前端的JavaScript、还是后端的Java、c#。他们都提供相应的接口/函数支持正则表达式。
但很神奇的是:无论你大学选择哪一门计算机语言,都没有关于正则表达式的课程给你修,在你学会正则之前,你只能看着那些正则大师们,写了一串外星文似的字符串,替代了你用一大篇幅的if else代码来做一些数据校验。
图片来源于菜鸟教程:
一、正则表达式基础
我们知道,学习一门语言,最开始应该从它的基础语法开始学习。虽然正则表达式不是一门语言,但是同样拥有一套自己的语法规则。
可以看到语法规则比较多,而且并不好记,在我看来,先用后记效率会更高!
修饰符(用于指定额外的匹配策略,在实例中就好理解作用了)
二、JS字符串使用正则表达式
知道了大概正则表达式的语法,那么怎么在JavaScript中使用呢?
(1)、新建正则表达式对象
要使用正则表达式,首先我们需要新建一个正则表达式对象,例如我们新建一个十分简单的:
//方法1:不推荐
let reg = new RegExp('123','g');
//方法2:常用,简单直接,推荐
let reg1 = /123/g;
(2)、方法
新建了正则表达式对象以后,要使用它匹配字符串,那么就要调用它自带的方法:
- exec(str):
exec()
方法检索字符串(参数str
)中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。 - test(str):
test()
方法搜索字符串指定的值,根据结果并返回真或假。所以调用它只会返回true或者false。
(3)、使用
有了正则表达式对象和对应的方法后,我们来新建一个字符串,测试一下:
let reg = /123/g;let str = '123456';console.log(reg.exec(str));
结果:
可以看到返回了一个数组,但是数组的每个属性比较特别,分别式0、index、input和groups。
OK!我们学会了正则表达式的最基本的使用。下面我们看看在字符串的方法中使用正则表达式。注意:exec和test方法都是正则表达式对象的方法,并不是字符串的方法,字符串匹配的常用方法有:
- search()
此方法的参数可以是字符串,也可以是正则表达式,返回符合结果的子字符串开头的下标,没有则返回-1:
let reg = /456/g;
let str = '123456';
console.log(str.search(reg));//输出3
- split()
此方法的参数可以是字符串,也可以是正则表达式,按照参数去分割
字符串为数组:
let reg = /1/g;
let str = '012314516';
console.log(str.split(reg));
//输出:[ '0', '23', '45', '6' ]
- replace()
这个方法有两个参数,参数一为字符串或者正则表达式,表示要被替换
的字符串,参数二为替换的字符:
let reg = /1/g;
let str = '012314516';
console.log(str.replace(reg, '#'));
//输出:0#23#45#6
- match()
这个方法和前三个不一样,参数只能为正则表达式
。
如果正则表达式不加全局’g’,和exec的效果一样.,返回一个数组,有很多项。
如果加全局,就会只返回找到所有元素的数组。
let reg = /1/g;
let str = '012314516';
console.log(str.match(reg));
//因为家了全局,所以输出:[ '1', '1', '1' ]
有关正则表达式在js中的基本应用差不多就这些了,当然,这仅仅只是基础。捕获、贪婪、分组等都还没有涉及到,我打算另外写一篇博客来记录。
详情见:【JS】JavaScript正则表达式详细使用。
三、Regexper
最后,推荐一个十分强的的将正则表达式解析为图形界面的网站,十分好用:https://regexper.com
例如输出检测邮箱的正则表达式:
【JS】JavaScript正则表达式基础相关推荐
- JavaScript正则表达式-基础入门
JavaScript正则表达式-基础入门 字符类,如 /w/ 为匹配任何ASCII字符组成的字符 重复, 如 /w{1,3}/ 为匹配一到三个单词 选择.分组和引用 指定匹配位置 修饰符 直接量字符 ...
- JavaScript正则表达式基础知识汇总
一.创建正则对象: 1.构造函数RegExp创建正则对象 1 var pattern = new RegExp('s$'); //pattern匹配以s结尾的字符串 2.使用正则直接量 1 var p ...
- js/javascript正则表达式中/g /i /m的用法,以及实例
正则的思想都是一样的,但是具体的写法会有所不同,在这里提到的/g,/i,/m在其他的地方也许就不能用了. 一,js正则标志/g,/i,/m说明 1,/g 表示该表达式将用来在输入字符串中查找所有可能的 ...
- 常用js(javascript)函数
常用js(javascript)函数 1.常规函数 javascript常规函数包括以下9个函数: (1)alert函数:显示一个警告对话框,包括一个OK按钮. (2)confirm函数:显示一个确认 ...
- html正则表达式 数字,js的正则表达式教程 js 正则表达式 3位数字
允许空格和~之间的字符但不包含# " ' & = < > ( ) % + \ ; $ | / 用eval转义,你现在reg是一个字符串 正确写法 var ch = &qu ...
- 常用js(javascript)函数(转)
1.常规函数 javascript 常规函数包括以下9个函数: (1)alert函数:显示一个警告对话框,包括一个OK按钮. (2)confirm函数:显示一个确认对话框,包括OK.Cancel按钮. ...
- 常用js正则表达式 Javascript正则表达式实战手册
最近做了几个项目,发现正则表达式用得越来越多了.我个人的习惯是,能通过查手册获取的东西绝不死记硬背,虽然大多数技术网站都搜罗了一堆Javascript正则表达式的用法,但我还是想整理一份更有实战意义的 ...
- JS:JavaScript编程语言基础语法总结
JS:JavaScript编程语言基础语法总结 目录 常用基础语法 一.变量 1.声明变量var 二.语句 1.if判断语句 2.for循环语句 三.函数 1.定义一个函数 常用基础语法 consol ...
- educoder头歌实训 web课——JavaScript语言基础:JS循环语句
educoder头歌实训 太原理工大学web课程----JavaScript语法基础:JS运算符_玛卡巴卡的博客-CSDN博客 第1关:while类型 任务描述 质数的定义如下:大于1的自然数,且除 ...
最新文章
- 联想研发支出从未超过2% 被指还不如政府补贴多
- java图形用户界面概述_Java中图形用户界面概述
- 数据处理之判断值是否为nan(空值)记录
- php写入变量cookie,PHP如何用数组变量给setcookie函数赋值?
- oracle中sum和count可以嵌套吗_【分享吧】Oracle查询转换
- CF914G Sum the Fibonacci(FWT模板+子集卷积)
- c语言火车票管理系统360问答,C语言 车票管理系统 前面一点点的程序,不知道报错是什么意思,可以解释一下吗?代码的具体问题是什么...
- js清理cookie
- 根据经纬度计算两点间的距离_全班学生被此奥数题难倒,理解两点间距离公式的几何意义是关键...
- 卡巴斯基最新激活码、授权文件,可用卡巴斯基
- PCB制图 | Altium Designer 20软件汉化
- [存储] Cobar使用文档(可用作MySQL大型集群解决方案)
- 如何给扑克洗牌才能更公平?
- [转]2014年最新810多套android源码2.46GB免费一次性打包下载
- 阿里云全站加速在游戏行业的最佳实践
- 马云和他的少年阿里 百度云下载
- SpringBoot项目中自动加载datasourceConfig配置导致启动失败
- 修改苹果开发者账号的资料
- 微信小程序--小程序系统API
- 天使的分裂【NOIP2016提高A组模拟9.24】