前端基础-JavaScript的正则表达式详解
一、概念:
- 正则表达式(Regular Expression),用于描述一组字符串特征的模式,可以用于匹配特定的字符串。
- 本质是一个规则字符串,用指定的符号来编写,制定规则。
二、应用场景:
- 验证:对表单数据的合法性验证;
- 查找:从大量的字符串数据中快速提取到指定内容;
- 替换:从大量的字符串数据中快速提取到指定内容,并进行替换;
三、如何创建正则表达式:
方式一:
var 正则变量名称=new RegExp('正则表达式');
转义符
\
使用要用两个\\
var telReg=new RegExp('^1[3-9]\\d{9}$');
方式二:(常用)
var 正则变量名称=/正则表达式/
转义符
\
使用只需要一个\
var telReg=/^1[3-9]\d{9}$/;
四、语法
- 字符类
.
- 匹配任意一个字符。
[]
- 匹配中括号中任意一个字符。
[abc]
:取a、b、c中任意一个字符。
-
- 在中括号中表示字符范围。
[a-zA-Z]
:取任意一个大写或小写字母。[a-zA-Z0-9]
:取任意一个数字、字母。
^
- 在中括号中表示除中括号内字符以外的任意一个字符。
[^a-zA-Z]
:取除字母以外的任意一个字符。
- 数量限定符
?
- 紧跟前面的单元匹配0次或1次。
[a-z]?
:出现0次或1次小写字母。
+
- 紧跟前面的单元匹配1次或多次。
[a-z]+
:出现1次或多次小写字母。
*
- 紧跟前面的单元匹配任意次。
[a-z]*
:出现任意次小写字母。
{N}
- 紧跟前面的单元匹配N次。
[a-z]{2}
:出现2次小写字母。
{N,}
- 紧跟前面的单元匹配至少N次。
[a-z]{2,}
:出现至少2次小写字母。
{0,M}
- 紧跟前面的单元匹配至多M次。
[a-z]{,2}
:出现至多2次小写字母。
{N,M}
- 紧跟前面的单元匹配至少N次至多M次。
[a-z]{6,12}
:出现至少6次至多12次小写字母。
- 位置限定符
^
:- 匹配行首位置。
^1
:以1开头。^[a-z]
:以小写字母开头。
$
:- 匹配行尾位置。
[a-z]$
:以小写字母结尾。
- 预定义符号
\w
:- 数字、字母、下划线中任意一个字符。等价于
[a-zA-Z0-9_]
。
- 数字、字母、下划线中任意一个字符。等价于
\W
:- 除了数字、字母、下划线以外的任意一个字符。等价于
[^a-zA-Z0-9_]
。
- 除了数字、字母、下划线以外的任意一个字符。等价于
\d
:- 任意一个数字字符。等价于
[0-9]
。
- 任意一个数字字符。等价于
\D
:- 任意一个非数字字符。等价于
[^0-9]
。
- 任意一个非数字字符。等价于
\s
:- 匹配任意一个空白字符(空格和换行)。
\S
:- 匹配任意一个非空白字符(空格和换行)。
- 特殊符号
()
- 将小括号中内容作为一个单元进行处理(一个整体)。
\.(com|cn|org)$
:以.com
、.cn
或.org
结尾。
|
- 表示或者。
\
- 转义符,将
\
右边的字符进行转义,如果右边的字符具备特殊意义(正则字符),则转义后,不具备特殊意义(普通字符)。
- 转义符,将
五、常用函数:
test()
判断指定字符串是否满足当前正则表达式规则,如果满足则返回true,否则返回false。
var reg=/^\.(com|cn|org)$/; var str=prompt('请输入:'); console.log(reg.test(str));
六、String中正则表达式的相关常用函数
match()
用于检索当前字符串中与指定正则表达式匹配的值。
参数
- 目标正则表达式。
返回值
- 查找到的目标字符结果。
var str='12ab34cd56ef78gh999'; var reg=/[0-9]+/g; console.log(str.match(reg));//['12','34','56','78','999']
replace()
将当前字符串中与指定正则表达式匹配的值替换为指定值。
参数
- 目标正则表达式。
返回值
- 替换后的字符串结果。
var str='123abc456efg789'; var reg=/[0-9]/g; console.log(str.replace(reg,'*'));//***abc***efg***
split()
将当前字符串中与指定正则表达式匹配的值作为分割符进行分割,形成子串数组。
参数
- 目标正则表达式。
返回值
- 切割后的子串数组。
var str='123abc456efg'; var reg=/[0-9]+/; console.log(str.split(reg));//['','abc','efg']
七、匹配模式
分类
u
:只匹配第一个子串结果。默认模式。g
:全局匹配模式,匹配所有子串。i
:忽略大小写模式。
使用
方式一:
var 正则变量名称=new RegExp('正则表达式','模式');
var telReg=new RegExp('[a-z]','ig');
方式二:(常用)
var 正则变量名称=/正则表达式/模式
var telReg=/[a-z]/ig;
前端基础-JavaScript的正则表达式详解相关推荐
- [js点滴]JavaScript之正则表达式详解02
一些符号可以影响表达式内部的子表达式之间的关系: 表达式 作用 | 左右两边表达式之间 "或" 关系,匹配左边或者右边 ( ) (1). 在被修饰匹配次数的时候,括号中的表达式可以 ...
- JavaScript中正则表达式详解
正则表达式的介绍 * 正则表达式也叫规则表达式[Regular Expression],是按照一定的规则组成的一个表达式,主要作用是用来匹配字符串的* 正则表达式可以在大多数编程语言中使用* 正则表达 ...
- JavaScript正则表达式详解(一)正则表达式入门
JavaScript正则表达式是很多JavaScript开发人员比较头疼的事情,也很多人不愿意学习,只是必要的时候上网查一下就可以啦~本文中详细的把JavaScript正则表达式的用法进行了列表,希望 ...
- 视频教程-javascript/jquery全过程详解-Java
javascript/jquery全过程详解 资深大数据.java讲师,十年开发经验,曾经任职于北大青鸟.讯腾软件等多家知名教育机构,精通javaweb, 前端技术,J2EE技术体系,熟练使用Spri ...
- java判断颜色合法_判断颜色是否合法的正则表达式(详解)
判断颜色是否合法的正则表达式(详解) "^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$"; 意思是:以#开头,后面是数字和a-f的字符(大写或小写),这个值是 ...
- java中的正则表达式详解
转自:http://gstarwd.iteye.com/category/91108?show_full=true 想必很多人都对正则表达式都头疼.今天,我以我的认识,加上网上一些文章,希望用常人都可 ...
- 菜鸟教程python正则表达式_python 正则表达式详解
python 正则表达式详解 1. 正则表达式模式 模式描述 ^ 匹配字符串的开头 $ 匹配字符串的末尾. . 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字 ...
- JS正则表达式详解2
JS的正则表达式详解 //校验是否全由数字组成 代码 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) retu ...
- Henry前端笔记之 Date对象详解
Henry前端笔记之 Date对象详解 Date 对象 1 时间格式简介 2 Date.now 与 new Date().getTime() 的区别 3 Date对象详解 普通函数的用法 构造函数的用 ...
最新文章
- NLP实战:利用Python理解、分析和生成文本 | 赠书
- 微信小程序的tab选项卡的实现
- 画正圆角矩形 - HTML5 Canvas 作图
- SqlDataAdapter上调用存储过程
- CTFshow php特性 web103
- android listview item 圆角,ListView圆角 实现方法(一)
- MySQL设置某一字段默认为0,但是插入数据化却显示为null
- office 2007图标_微软Office 365桌面版新图标开始测试
- 信守承诺:JAX-RS API的基于合同的测试
- 2020年边缘计算最新前沿报告:如何与核心云、5G、AI协同?如何打造新业态和部署运营?...
- Silverlight4中右键菜单实现-附源码下载
- uFrame近况(2016年4月8日更新)
- bs4用法实例:用Python爬取金融市场数据
- 教我兄弟学Android逆向
- elasticsearch6.1.3 集成分词器
- 关于python的自省机制
- 远方的人 -- 龙瑜
- 记一次NGINX配置问题
- Unity HDRP Volume框架 — Lighting(光照)
- PCIE Feature ------ INTx