正则表达式是由一个字符序列形成的搜索模式。当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。正则表达式可以是一个简单的字符,或一个更复杂的模式,可用于所有文本搜索和文本替换的操作。

入门须知

正则表达式是一门独立学科,用于匹配字符串。常用于检索,论文查重,爬虫,表单验证。

元字符是拥有特殊含义的字符

元字符 描述
\d 查找数字
\D 查找非数字字符
\s 查找空白字符
\S 查找非空白字符
\w 查找所有的字母和数字
\W 查找所有的非字母和数字
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符

方括号用于查找某个范围内的字符

表达式 描述
[abc] 查找方括号之间的任何字符
[0-9] 查找从 0 至 9 的数字
(x|y) 查找所有以“|”分隔的选项

数量词表示匹配的次数

数量词 描述
{n} 匹配n次
{n,m} 匹配n~m次
{n,} 匹配n+次
匹配0或1次
+ 匹配1或多次
* 匹配0或多次

初始化

  • 字面量
var pattern = /abc/igm;

其中,abc表示正则表达式主体,igm表示修饰符,i(ignore case)表示忽略大小写,g(global)表示全局匹配,m(multiline)表示多行匹配。修饰符在全局搜索中不区分大小写。

  • 构造函数
var pattern = new RegExp("abc","igm");

在 JavaScript 中,RegExp 对象是一个预定义了属性和方法的正则表达式对象。

使用字符串方法

search()

search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。

var str = "Visit Runoob!";
var n = str.search(/Runoob/i); //6
var n = str.search("Runoob");    //6

replace()

replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

var str = "Visit Runoob!";
var txt = str.replace(/Runoob/i,"microsoft");    //'Visit microsoft!'
var txt = str.replace("Runoob","microsoft");   //'Visit microsoft!'

使用RegExp 对象方法

test()

test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

var patt = /e/;
patt.test("The best things in life are free!");
//字符串中含有 "e",所以该实例输出为:true

exec()

exec() 方法用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

var patt = /e/;
patt.exec("The best things in life are free!");
//字符串中含有 "e",所以该实例输出为: e

练习:给定一串字符,如何根据正则表达式查询出所有的符合模式的内容?

var str = "my phone is 18812344321, my emil is licy@briup.com, my name is charles, my friend is jacky, his phone is 17751229900, my friend is tom, his phone is 15912344432."
function search(str){var pattern = /((188)|(177)|(159))\d{8}/g;var result;while(result = pattern.exec(str)){console.log(result[0]);}
}
/*
18812344321
17751229900
15912344432
*/

JavaScript学习笔记(八)--正则表达式相关推荐

  1. JavaScript:学习笔记(3)——正则表达式的应用

    JavaScript:正则表达式的应用 应用正则表达式对象RegExp 创建正则表达式 JavaScript中使用RegExp对象来表述一个正则表达式.使用正则表达式之前首先要创建一个RegExp对象 ...

  2. JavaScript学习笔记(三)---事件、正则表达式、ES6、运动

    JavaScript学习笔记(三)---事件.正则表达式.ES6.运动 27.insertbefore 28.滚动条及事件 29.事件及事件对象 30.鼠标事件对象的属性 31.案例:图片随鼠标移动 ...

  3. JavaScript学习笔记06【高级——JavaScript中的事件】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  4. 正则至少一个数字_好程序员web前端培训分享JavaScript学习笔记之正则

    好程序员web前端培训分享JavaScript学习笔记之正则,正则表达式,又名 "规则表达式" 由我们自己来书写 "规则",专门用来检测 字符串 是否符合 &q ...

  5. HTML,CSS,JavaScript学习笔记--导航

    陆陆续续花了一个月的时间,把前端三大件HTML,CSS,JavaScript的基本语法学完了,感觉还是收益颇丰的.但是其中的知识远远不止这些,以后学习的过程中在进行补充吧. HTML,CSS学习笔记 ...

  6. JavaScript学习笔记03【基础——对象(RegExp、Global)】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  7. JavaScript 学习笔记(二)

    JavaScript 学习笔记(二) 文章目录 JavaScript 学习笔记(二) 一 JSON 1. JSON 对象 什么是JSON对象 JSON对象与Javascript对象的区别 在JavaS ...

  8. JavaScript学习笔记03-数组-Data对象-Math对象-包装类-字符串-正则

    目录 一.数组 索引 数组的特点 1.1.数组的创建 1.1.1.使用new关键字(构造函数) 1.1.2.使用字面量形式 1.1.3.创建数组的注意事项 1.2.数组的基本使用 1.2.1.存操作( ...

  9. JavaScript学习笔记(六)(Jquery入门)

    JavaScript学习笔记(六) 一.jQuery是什么? 二.jQuery的安装 三.载入事件区别 四.jQuery对象和DOM对象的区别 DOM对象和Jquery对象互转 五.选择器 5.1 j ...

  10. Java程序猿的JavaScript学习笔记(12——jQuery-扩展选择器)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

最新文章

  1. 还记得当年陪你度过整个夏日的红白机吗?
  2. May 18:PHP 用到的学习工具
  3. boost::mpl模块实现single_view相关的测试程序
  4. c语言解决一元二次方程,一元二次方程求解程序完整代码
  5. PostgreSQL Oracle 兼容性之 - INDEX SKIP SCAN (递归查询变态优化) 非驱动列索引扫描优化...
  6. Qt 设置应用程序开机自启动
  7. 详解网络数字电视的实现方法与关键技术
  8. [转载] Python高级变量(列表、元组、字典、字符串、公共方法)
  9. 编译单元必须以 java_java中什么是编译单元
  10. asp获取计算机mac,ASP获取客户端MAC地址(源代码)
  11. SQL 删除重复记录,并保留其中一条
  12. symbolicatecrash App Bug 分析工具
  13. java多线程--信号量Semaphore的使用
  14. 一款给变量自动取名的工具
  15. 华硕服务器主板安装系统提示驱动,肿么安装电脑的主板芯片组驱动程序步骤华硕主板intel芯片...
  16. 互联网日报 | 微信聊天上线“超链接”功能;B站月付费用户达1500万;优客工场正式登陆纳斯达克...
  17. 妈妈帮上云之路:云上平台架构与运维实践
  18. 学习Maya学习MayaArnoldArnold
  19. js判断身份证是否合法
  20. VMware Workstation Pro界面设置为中文界面

热门文章

  1. vue表单中批量导入功能_vue实战(11)——vue+element UI实现表格数据导出Excel功能
  2. 8bit黑白图像的灰度值范围是_窗宽窗位对基于互信息的医学图像
  3. rust睡觉按键没反应_腐蚀Rust有哪些实用操作 腐蚀Rust实用操作汇总-游侠网
  4. bat执行java文件_.bat文件执行java程序
  5. 项目服务器admin,django-admin创建项目与manage服务器的运行
  6. 小学教师计算机应用水平和能力,中小学教师信息技术应用能力的现状与对策
  7. Macbook Pro笔记本双系统MacOS和Windows切换默认启动
  8. ipv4广播地址怎么填_什么是IP地址?IP地址有什么用?网络工程师来告诉你
  9. rviz中的相关配置
  10. 小汤学编程之JavaEE学习day07——版本控制工具:SVN、GIT