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正则学习
一直对正则很纠结也很畏惧,以前感觉花时间理解一个个奇奇怪怪的符号,还不如直接百度谷歌之. 但知其然不知其所以然也是种痛苦,所以花了两天稍微学了一下,虽然没学很深入彻底,但也比之前进步不少,特此笔记. ...
随机推荐
- 数据库高级:SQL-CREATE-TABLE语句
作者:松软科技(www.sysoft.net.cn) 发布时间:2019/3/17 9:34:51 CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL CRE ...
- 手撸基于swoole 的分布式框架 实现分布式调用(20)讲
最近看的一个swoole的课程,前段时间被邀请的参与的这个课程 比较有特点跟一定的深度,swoole的实战教程一直也不多,结合swoole构建一个新型框架,最后讲解如何实现分布式RPC的调用. 内容听 ...
- ZooKeeper 介绍及集群环境搭建
本篇由鄙人学习ZooKeeper亲自整理的一些资料 包括:ZooKeeper的介绍,我们要学习ZooKeeper的话,首先就要知道他是干嘛的对吧. 其次教大家如何去安装这个精巧的智慧品! 相信你能研究 ...
- jenkins自动化部署项目4 -- 安装和配置jdk、maven、git
Jenkins提供了自动安装jdk,maven,git的功能,在[系统设置-全局工具配置]里,但是我自动安装没反应,因此我是先手工安装和配置它们的环境变量然后再在[系统设置-全局工具配置]里配置: 1 ...
- Hadoop-1,web页面调用报无hbase.jar包【以解决】 2,报java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg/eclipse/jdt/core/compiler/IProblem;【以解决】
1:web页面调用报无hbase.jar包 本来java文件就没有问题,但是jsp一调用那个java文件里的方法就报错,报的无hadoop/hbase相关报的问题. 主要解决方法是: 复制hbase/ ...
- eclipse配置workspace背景颜色
- 安装centos8
一. 镜像下载 国内源下载镜像:(推荐) http://mirrors.aliyun.com/centos/8.0.1905/isos/x86_64/CentOS-8-x86_64-1905- ...
- 为RecyclerView定制可滑动的Item
最近项目有需要弄一个可以像手机QQ会话页一样可以滑动的小菜单,每一个Item当用户在向左滑动的时候右侧会出现一个小菜单当时就想在也不是很难心想着找个开源的使用就好呢,但是我的项目是用的Recycler ...
- 动态set mybatis与ibatis的写法
mybatis: <set> <if test="obj.buyerId != null"> buyerId = #{obj.buyerId}, </ ...
- 【爬虫小程序:爬取斗鱼所有房间信息】Xpath(线程池版)
# 本程序亲测有效,用于理解爬虫相关的基础知识,不足之处希望大家批评指正 from queue import Queue import requests from lxml import etree ...