众所周知正则表达式是十分强大的存在,编码时能够熟练使用正则能够极大的简化代码,因此掌握正则非常有必要。

创建正则语法:

// 创建正则的两种方式
// 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正则学习笔记的更多相关文章

  1. js再学习笔记

    #js再学习笔记 ##基本 1.js严格区分大小写   2.js末尾的分号可加,也可不加   3.六种数据类型(使用typeof来检验数据的类型) `typeof` - undefined: `var ...

  2. JS数组学习笔记

    原文:JS数组学习笔记 最近在备课数组,发现很多ES5的方法平时很少用到.细节比较多,自己做了大量例子和整理,希望对大家了解JavaScript中的Array有所帮助. 概念 数组是值的有序集合.每个 ...

  3. js 正则学习小记之匹配字符串

    原文:js 正则学习小记之匹配字符串 今天看了第5章几个例子,有点收获,记录下来当作回顾也当作分享. 关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配.(因为我想学完之后写个语法高 ...

  4. js 正则学习小记之左最长规则

    原文:js 正则学习小记之左最长规则 昨天我在判断正则引擎用到的方法是用 /nfa|nfa not/ 去匹配 "nfa not",得到的结果是 'nfa'.其实我们的本意是想得到整 ...

  5. js 正则学习小记之NFA引擎

    原文:js 正则学习小记之NFA引擎 之前一直认为自己正则还不错,在看 次碳酸钴,Barret Lee 等大神都把正则玩的出神入化后发现我只是个战五渣.  求抱大腿,求大神调教. 之前大致有个印象,正 ...

  6. js 正则学习小记之匹配字符串优化篇

    原文:js 正则学习小记之匹配字符串优化篇 昨天在<js 正则学习小记之匹配字符串>谈到 个字符,除了第一个 个,只有 个转义( 个字符),所以 次,只有 次成功.这 次匹配失败,需要回溯 ...

  7. js 正则学习小记之匹配字符串字面量优化篇

    昨天在<js 正则学习小记之匹配字符串字面量>谈到 个字符,除了第一个 个,只有 个转义( 个字符),所以 次,只有 次成功.这 次匹配失败,需要回溯后用 [^"] 才能匹配成功 ...

  8. Knockout.js快速学习笔记

    原创纯手写快速学习笔记(对官方文档的二手理解),更推荐有时间的话读官方文档 框架简介(Knockout版本:3.4.1 ) Knockout(以下简称KO)是一个MVVM(Model-View-Vie ...

  9. js正则学习

    一直对正则很纠结也很畏惧,以前感觉花时间理解一个个奇奇怪怪的符号,还不如直接百度谷歌之. 但知其然不知其所以然也是种痛苦,所以花了两天稍微学了一下,虽然没学很深入彻底,但也比之前进步不少,特此笔记. ...

随机推荐

  1. CDH5.16.1离线集成Phoenix

    1.安装环境 Centos 7.6 CDH 5.16.1 2.下载Phoenix所需的parcel包 3.上传parcel包到ClouderaManager server所在的节点上 /opt/clo ...

  2. 表达式树练习实践:C#值类型、引用类型、泛型、集合、调用函数

    目录 表达式树练习实践:C#值类型.引用类型.泛型.集合.调用函数 一,定义变量 二,访问变量/类型的属性字段和方法 1. 访问属性 2. 调用函数 三,实例化引用类型 四,实例化泛型类型于调用 五, ...

  3. Python虚拟环境管理工具virtualenvwrapper安装及配置

      1. 安装virtualenv 使用pip install virtualenv安装virtualenv虚拟环境工具 2. 安装virtualenvwrapper a) Linux环境,直接使用p ...

  4. Chrome 查看产品原型图

    1.找到产品发的原型图 2.找到文件resources\chrome\axure-chrome-extension,修改文件的后缀为rar,然后解压 3.找到chrome的extensions,找到开 ...

  5. mysql8.0版本忘记root密码

    1.先关掉系统服务 net stop mysql 2.进入mysql安装目录的bin文件中,以管理员的方式运行cmd,然后输入如下命令,实现无密码登陆 mysqld --console --skip- ...

  6. Android Studio [WebView]

    WebViewActivity.java package com.xdw.a122; import android.graphics.Bitmap; import android.support.v7 ...

  7. 《HelloGitHub》第 42 期

    兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...

  8. idea 自动生成并跳转单元测试

    在要测试的类上按快捷键ctrl + shift + t,选择Create New Test,在出现的对话框的下面member内勾选要测试的方法,点击ok 或者点击菜单栏Navigate–>tes ...

  9. Java8新特性——lambda函数式编程

    一.遍历循环 /** * @author jiaqing.xu@hand-china.com * @version 1.0 * @name * @description 循环遍历 * @date 20 ...

  10. CSS3 transform属性

    说明: transform 属性向元素应用 2D 或 3D 转换.该属性允许我们对元素进行移动(translate).旋转(rotate).缩放(scale)或倾斜(skew) transition属 ...