Js正则学习笔记
众所周知正则表达式是十分强大的存在,编码时能够熟练使用正则能够极大的简化代码,因此掌握正则非常有必要。
创建正则语法:
// 创建正则的两种方式
// 1.构造函数 let reg = new RegExp('匹配模式', '修饰符[i/m/g]')
let reg = new RegExp('test', 'g');
// 2.字面量 let reg = /匹配模式/修饰符
let reg1 = /test/g;
正则修饰符:
// i 忽略大小写
// m 多行匹配
// g 全局匹配 // 例1:
let str = 'testTEST';
let reg = /test/gi; // 全局匹配 并 忽略大小写
str.match(reg); // ["test", "TEST"] //例2:
str = 'test\n helloworld';
reg = /test$/g
str.match(reg) // null
reg = /test$/gm
str.match(reg) // ["test"]
正则表达式方法:
test() 方法用于检测一个字符串是否匹配某个模式,返回true、false
exec() 法用于检索字符串中的正则表达式的匹配, 返回数组
// 例1:
let str = 'this is test';
let reg = /test/;
reg.test(str); // true
// 例2:
let str1 = 'this is test2';
let reg1 = /test/;
reg1.exec(str1); // ["test",...]
可用于正则的字符串方法:
search() 检索与正则表达式相匹配的值,返回位置下标
match() 找到一个或多个匹配的字符串,返回匹配到的值
replace() 替换匹配的字符串,返回替换后的值
split() 将字符串分割为数组,返回数组
// 例1:
let str2 = 'this is searchTest';
let reg2 = /Test/i;
str2.search(reg2); //
// 例2:
let str3 = 'this is matchTESTMATch';
let reg3 = /match/gi;
str3.match(reg3); //["match", "MATch"]
// 例3:
let str4 = 'this is replaceTest';
let reg4 = /replaceTEST/i;
str4.replace(reg4, '修改后的字符串');
// 例4:
let str5 = '/Date(1515554448781)';
let reg5 = /(\/Date\(|\))/g;
str5.replace(reg5, ''); //
// 例5:
let str6 = '/Date(1515554448781)';
let reg6 = /(\/Date\(|\))/g;
str6.split(reg6); // ["", "/Date(", "1515554448781", ")", ""]
正则基础表达式:
[a-z] a-z 任意字符
[test] []中任意字符
[^dsad] 非[]中的任意字符
[abc|efg] []中任意字符
(abc|efg) () abc字符串或efg字符串 n* 0个或多个
n+ 1个或多个
n{x} x个字符
n{x, } 大于等于x个字符
n{x, y} x到y个字符
n(?=x) 匹配任何其后紧接指定字符串 n 的字符串。
n(?!x) 匹配任何其后没有紧接指定字符串 n 的字符串。
^n 以n开头
n$ 以n结尾
Js正则学习笔记的更多相关文章
- js再学习笔记
#js再学习笔记 ##基本 1.js严格区分大小写 2.js末尾的分号可加,也可不加 3.六种数据类型(使用typeof来检验数据的类型) `typeof` - undefined: `var ...
- JS数组学习笔记
原文:JS数组学习笔记 最近在备课数组,发现很多ES5的方法平时很少用到.细节比较多,自己做了大量例子和整理,希望对大家了解JavaScript中的Array有所帮助. 概念 数组是值的有序集合.每个 ...
- js 正则学习小记之匹配字符串
原文:js 正则学习小记之匹配字符串 今天看了第5章几个例子,有点收获,记录下来当作回顾也当作分享. 关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配.(因为我想学完之后写个语法高 ...
- js 正则学习小记之左最长规则
原文:js 正则学习小记之左最长规则 昨天我在判断正则引擎用到的方法是用 /nfa|nfa not/ 去匹配 "nfa not",得到的结果是 'nfa'.其实我们的本意是想得到整 ...
- js 正则学习小记之NFA引擎
原文:js 正则学习小记之NFA引擎 之前一直认为自己正则还不错,在看 次碳酸钴,Barret Lee 等大神都把正则玩的出神入化后发现我只是个战五渣. 求抱大腿,求大神调教. 之前大致有个印象,正 ...
- js 正则学习小记之匹配字符串优化篇
原文:js 正则学习小记之匹配字符串优化篇 昨天在<js 正则学习小记之匹配字符串>谈到 个字符,除了第一个 个,只有 个转义( 个字符),所以 次,只有 次成功.这 次匹配失败,需要回溯 ...
- js 正则学习小记之匹配字符串字面量优化篇
昨天在<js 正则学习小记之匹配字符串字面量>谈到 个字符,除了第一个 个,只有 个转义( 个字符),所以 次,只有 次成功.这 次匹配失败,需要回溯后用 [^"] 才能匹配成功 ...
- Knockout.js快速学习笔记
原创纯手写快速学习笔记(对官方文档的二手理解),更推荐有时间的话读官方文档 框架简介(Knockout版本:3.4.1 ) Knockout(以下简称KO)是一个MVVM(Model-View-Vie ...
- js正则学习
一直对正则很纠结也很畏惧,以前感觉花时间理解一个个奇奇怪怪的符号,还不如直接百度谷歌之. 但知其然不知其所以然也是种痛苦,所以花了两天稍微学了一下,虽然没学很深入彻底,但也比之前进步不少,特此笔记. ...
随机推荐
- 探索form组件和cookie,session组件
一. 实现注册功能 后端代码: from django.shortcuts import render,HttpResponse,redirect from app01 import models C ...
- Redis 的底层数据结构(字典)
字典相对于数组,链表来说,是一种较高层次的数据结构,像我们的汉语字典一样,可以通过拼音或偏旁唯一确定一个汉字,在程序里我们管每一个映射关系叫做一个键值对,很多个键值对放在一起就构成了我们的字典结构. ...
- 01:***VideoToolbox硬编码H.264
最近接触了一些视频流H264的编解码知识,之前项目使用的是FFMpeg多媒体库,利用CPU做视频的编码和解码,俗称为软编软解.该方法比较通用,但是占用CPU资源,编解码效率不高.一般系统都会提供GPU ...
- fslove - Matlab求解多元多次方程组
fslove - Matlab求解多元多次方程组 简介: 之前看到网上的一些资料良莠不齐,各种转载之类的,根本无法解决实际问题,所以我打算把自己的学到的总结一下,以实例出发讲解fsolve. 示例如下 ...
- Docker下实战zabbix三部曲之三:自定义监控项
通过上一章<Docker下实战zabbix三部曲之二:监控其他机器>的实战,我们了解了对机器的监控是通过在机器上安装zabbix agent来完成的,zabbix agent连接上zabb ...
- App的功能测试要点
一 UI测试 (1)界面(菜单.窗口.按钮)布局.风格是否满足客户要求,文字和图片组合是否美观,操作是否友好. (2)清晰.简洁.美观.响应.一致 (3)图形测试.内容测试.导航测试 (图形包括 ...
- 暑期——第四周总结(Ubuntu系统安装新版eclipse双击无法打开问题 【已解决】)
所花时间:7天 代码行:200(python)+3000(java) 博客量:1篇 了解到知识点 : Ubuntu安装新eclipse 在通过软件中心安装好eclipse之后,发现各种东西都不顺眼,不 ...
- NABCD分析 [团队任务]
N(Need,需求) 学校有许多闲置的自己用不着或者想出手的二手物品,加群发消息寻找物品太过繁琐,同样兼职信息在QQ群混杂在一起尤为不便.因此我们打算做一个专门发布信息的App.包括发布闲置物品,兼职 ...
- Centos 6下使用cmake编译安装MariaDB
写在前面 最近在学习Maria DB,为了方便查阅,又为了将所学的知识重新的梳理,特作此随笔一篇,希望过后阅读时能有所感,也希望对大家能够有所帮助. 安装前的准备 大家都知道,在Linux上安装软件一 ...
- .Net Core 商城微服务项目系列(三):Ocelot网关接入Grafana监控
使用网关之后我们面临的一个问题就是监控,我们需要知道网关的实时状态,比如当前的请求吞吐量.请求耗费的时间.请求峰值甚至需要知道具体哪个服务的哪个方法花费了多少时间.网关作为请求的中转点是监控品牌的要塞 ...