JavaScript学习笔记(八)--正则表达式
正则表达式是由一个字符序列形成的搜索模式。当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。正则表达式可以是一个简单的字符,或一个更复杂的模式,可用于所有文本搜索和文本替换的操作。
入门须知
正则表达式是一门独立学科,用于匹配字符串。常用于检索,论文查重,爬虫,表单验证。
元字符是拥有特殊含义的字符
元字符 | 描述 |
---|---|
\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学习笔记(八)--正则表达式相关推荐
- JavaScript:学习笔记(3)——正则表达式的应用
JavaScript:正则表达式的应用 应用正则表达式对象RegExp 创建正则表达式 JavaScript中使用RegExp对象来表述一个正则表达式.使用正则表达式之前首先要创建一个RegExp对象 ...
- JavaScript学习笔记(三)---事件、正则表达式、ES6、运动
JavaScript学习笔记(三)---事件.正则表达式.ES6.运动 27.insertbefore 28.滚动条及事件 29.事件及事件对象 30.鼠标事件对象的属性 31.案例:图片随鼠标移动 ...
- JavaScript学习笔记06【高级——JavaScript中的事件】
w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...
- 正则至少一个数字_好程序员web前端培训分享JavaScript学习笔记之正则
好程序员web前端培训分享JavaScript学习笔记之正则,正则表达式,又名 "规则表达式" 由我们自己来书写 "规则",专门用来检测 字符串 是否符合 &q ...
- HTML,CSS,JavaScript学习笔记--导航
陆陆续续花了一个月的时间,把前端三大件HTML,CSS,JavaScript的基本语法学完了,感觉还是收益颇丰的.但是其中的知识远远不止这些,以后学习的过程中在进行补充吧. HTML,CSS学习笔记 ...
- JavaScript学习笔记03【基础——对象(RegExp、Global)】
w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...
- JavaScript 学习笔记(二)
JavaScript 学习笔记(二) 文章目录 JavaScript 学习笔记(二) 一 JSON 1. JSON 对象 什么是JSON对象 JSON对象与Javascript对象的区别 在JavaS ...
- JavaScript学习笔记03-数组-Data对象-Math对象-包装类-字符串-正则
目录 一.数组 索引 数组的特点 1.1.数组的创建 1.1.1.使用new关键字(构造函数) 1.1.2.使用字面量形式 1.1.3.创建数组的注意事项 1.2.数组的基本使用 1.2.1.存操作( ...
- JavaScript学习笔记(六)(Jquery入门)
JavaScript学习笔记(六) 一.jQuery是什么? 二.jQuery的安装 三.载入事件区别 四.jQuery对象和DOM对象的区别 DOM对象和Jquery对象互转 五.选择器 5.1 j ...
- Java程序猿的JavaScript学习笔记(12——jQuery-扩展选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
最新文章
- 还记得当年陪你度过整个夏日的红白机吗?
- May 18:PHP 用到的学习工具
- boost::mpl模块实现single_view相关的测试程序
- c语言解决一元二次方程,一元二次方程求解程序完整代码
- PostgreSQL Oracle 兼容性之 - INDEX SKIP SCAN (递归查询变态优化) 非驱动列索引扫描优化...
- Qt 设置应用程序开机自启动
- 详解网络数字电视的实现方法与关键技术
- [转载] Python高级变量(列表、元组、字典、字符串、公共方法)
- 编译单元必须以 java_java中什么是编译单元
- asp获取计算机mac,ASP获取客户端MAC地址(源代码)
- SQL 删除重复记录,并保留其中一条
- symbolicatecrash App Bug 分析工具
- java多线程--信号量Semaphore的使用
- 一款给变量自动取名的工具
- 华硕服务器主板安装系统提示驱动,肿么安装电脑的主板芯片组驱动程序步骤华硕主板intel芯片...
- 互联网日报 | 微信聊天上线“超链接”功能;B站月付费用户达1500万;优客工场正式登陆纳斯达克...
- 妈妈帮上云之路:云上平台架构与运维实践
- 学习Maya学习MayaArnoldArnold
- js判断身份证是否合法
- VMware Workstation Pro界面设置为中文界面
热门文章
- vue表单中批量导入功能_vue实战(11)——vue+element UI实现表格数据导出Excel功能
- 8bit黑白图像的灰度值范围是_窗宽窗位对基于互信息的医学图像
- rust睡觉按键没反应_腐蚀Rust有哪些实用操作 腐蚀Rust实用操作汇总-游侠网
- bat执行java文件_.bat文件执行java程序
- 项目服务器admin,django-admin创建项目与manage服务器的运行
- 小学教师计算机应用水平和能力,中小学教师信息技术应用能力的现状与对策
- Macbook Pro笔记本双系统MacOS和Windows切换默认启动
- ipv4广播地址怎么填_什么是IP地址?IP地址有什么用?网络工程师来告诉你
- rviz中的相关配置
- 小汤学编程之JavaEE学习day07——版本控制工具:SVN、GIT