JS常用正则表达式及其语法
正则表达式是一种描述文本模式的对象,可以用某种模式去匹配一类字符串。
在JavaScript中,正则表达式通过RegExp对象来表示,RegExp对象可以使用RegExp()构造函数来创建,但更多是通过一种特殊的字面量语法来创建的。
目录
一:创建正则表达式
1.1.通过字面量语法创建
1.2.通过调用RegExp()构造函数创建
二:使用特殊字符
2.1.锚点字符
2.2.[ ]的使用
2.3.预定义字符
2.4.限定字符
2.5.特殊转义符
三:正则表达式的运算符优先级
四:RegExp和String的常用方法
4.1.RegExp方法
4.1.1.test(str)
4.1.2.exec(str)
4.2.String方法
4.2.1.match(regexp)
4.2.2.search(regexp)
4.2.3.replace(regexp,str)
五:常用的正则验证表达式
一:创建正则表达式
1.1.通过字面量语法创建
正则表达式字面量就是包含在一对斜杠“ / "字符之间的字符
let reg = /表达式/附加参数(可选)
例如:let reg = /abc/ 即匹配包含了abc的字符串
其中,字面量中的表达式必须是一个常量字符串,并且附加参数(flags)一共有6个,这些参数既可以单独使用也能以任意顺序一起使用,并且被包含在正则表达式实例中。
标志 | 描述 |
---|---|
g
|
全局搜索。 |
i
|
不区分大小写搜索。 |
m
|
多行搜索。 |
s
|
允许 . 匹配换行符。
|
u
|
使用 unicode 码的模式进行匹配。 |
y
|
执行“粘性 (sticky )”搜索,匹配从目标字符串的当前位置开始。
|
1.2.通过调用RegExp()构造函数创建
构造函数中的表达式可以是常量字符串, 也可以是一个js变量
let reg = new RegExp(“表达式”,”附加参数(可选)”);
二:使用特殊字符
2.1.锚点字符
^ 限定开始位置的字符
$ 限定结尾位置的字符
\b 限定单词边界的字符 即匹配\w字符和\W\字符之间或\w与字符串开头或末尾之间的位置
\B 限定非单词边界的字符
注意:[\b] 匹配退格字符
2.2.[ ]的使用
[ ]表示有一系列字符可供选择,只要匹配其中一个就可以了
[^...]匹配不在方括号中的任意一个字符
[abcdef] 这个正则表达式匹配abcdef中其中一个字母,
[0-9]匹配0到9这段区间中任意一个数字(包括0和9)
[^0-9]表示除0-9外的任意字符
[a-z]匹配a到z中任何一个小写字母
[0-9a-zA-Z]就是匹配 0到9、a到z、A到Z中任意一个字母或数字
2.3.预定义字符
\d匹配数字,相当于[0-9]
\D匹配非数字,相当于[^0-9]
\w匹配任意ASCII单词字符(字母或数字或汉字或下划线) 等价于[a-zA-Z0-9_]
\W匹配任意非字母、数字、汉字或下划线的字符
\s匹配任意Unicode空白符,如空格、换行符、制表符等
\S匹配任意不是空白符的字符
.匹配除了换行符以外的任意字符
2.4.限定字符
?匹配0次或1次 等价于{0,1}
*匹配0次或更多次 等价于{0,}
+匹配1次或更多次 等价于{1,}
{n}重复n次
{n,}匹配n次或更多次(最少n次)
{n,m}匹配n到m次之间 闭区间
2.5.特殊转义符
\f 匹配换页符
\n 匹配换行符
\r 匹配回车符
\t 匹配制表符
\v 匹配垂直制表符
\\ 匹配\
\" 匹配 "
\' 匹配 '
三:正则表达式的运算符优先级
运算符 | 描述 |
---|---|
\ | 转义符 |
(),(?:),(?=),[ ] | 圆括号和方括号 |
*, +, ?, {n}, {n,}, {n,m} | 限定符 |
^, $, \ 任何元字符、任何字符
|
定位点和序列(位置和顺序) |
| | 替换,或操作 |
四:RegExp和String的常用方法
4.1.RegExp方法
4.1.1.test(str)
用于判断字符串str是否匹配表达式,返回一个布尔值,如:
var str='abc';
var reg = /a/;
console.log(reg.test(str));//output:true
4.1.2.exec(str)
返回str中与表达式相匹配的第一个字符串,而且以数组的形式表现(未匹配到则返回 null)
var str='345abc789';
var reg = /\d+/;
console.log(reg.exec(str));//output:Array ["345"]
4.2.String方法
4.2.1.match(regexp)
返回与regexp相匹配的一个字符串数组,未匹配到则返回 null 可结合全局匹配使用
var str='345abc789';
var reg = /\d+/;
var reg2 = /\d+/g;
console.log(str.match(reg));//output:Array ["345"]
console.log(str.match(reg2));//output:Array ["345","789"]
4.2.2.search(regexp)
返回字符串中与regexp相匹配的第一个匹配的index值。没有匹配项时,返回-1。search() 方法不执行全局匹配,它将忽略标志 g
var str='345abc789';
var reg = /a/;
console.log(str.search(reg));//output:3
4.2.3.replace(regexp,str)
返回将字符串中匹配regexp的部分替换为str的一个新字符串,原字符串不会改变。
var str='345abc789';
var reg = /a/;
console.log(str.replace(reg,'b'));//output:'345bbc789'
五:常用的正则验证表达式
验证由26个英文字母组成的字符串:/^[A-Za-z]+$/
验证日期格式YYYY-MM-DD hh:mm:ss:/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/
验证整数:/^[-+]?\d*$/
验证小数:/^[-\+]?\d+(\.\d+)?$/
验证中文:/^[\u0391-\uFFE5]+$/
验证邮箱:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
验证手机号:/^1[3456789]\d{9}$/
验证身份证:/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/
JS常用正则表达式及其语法相关推荐
- JS常用正则表达式和JS控制输入框输入限制(数字、汉字、字符)
JS常用正则表达式和JS控制输入框输入限制(数字.汉字.字符) 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数 ...
- 收集的JS常用正则表达式等
// 短日期,形如 (2003-12-05) function strDateTime(str) { var r = str.match(/^(d)(-│/)(d)2(d)$/); if(r==n ...
- 收集的JS常用正则表达式等(转载)
// 短日期,形如 (2003-12-05) function strDateTime(str) { var r = str.match(/^(d)(-│/)(d)2(d)$/); if( ...
- JS常用正则表达式表单验证代码大汇总
正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下: 测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或 ...
- js 常用正则表达式表单验证代码
正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下: 测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或 ...
- js 正则或_Web前端工程师要知道的JS 常用正则表达式
说起正则表达式,相信从事web前端开发的人一定很熟悉,正则表达式通常被用来检索.替换那些符合某个模式(规则)的文本,是web前端开发中经常会用到的.今天,就为大家分享JS常用的正则表达式以及创建正则表 ...
- 部分js常用正则表达式
部分常用的正则表达式 (https://github.com/validatorjs/validator.js 也可直接使用 外部组件库 validator.js 进行各种正则校验 该组件库基于MIT ...
- JS:正则表达式详细语法基础
正则表达式 一.字符描述 支持的边界元字符 二.字符范围 2.1示例 三.选择操作 3.1 基本选择模式 3.2 多重选择模式 四.重复类量词 4.1重复类量词示例 五.惰性模式 5.1定义惰性匹配 ...
- JS常用正则表达式及验证时间的正则表达式
1.在input框中只能输入金额,其实就是只能输入最多有两位小数的数字 //第一种在input输入框限制 <input type="text" maxlength=" ...
最新文章
- arc diff 指定版本号_Phabricator客户端安装
- 循环遍历Java字符串字符的规范方法——类似python for ch in string
- linux驱动学习笔记(2.4) scull 脚本scull_init
- 检测数据类型的几种方式
- navicat for mysql 导入psc文件
- java图像分类源码_在Android设备上使用NCNN图像分类的demo
- windbg调试实例(4)--句柄泄露
- rebuild online意外终止导致ora-8104错误的实验
- Gradle中的buildScript,gradle wrapper,dependencies等一些基础知识
- 学校为什么要单位接收函_学校、小区运动场为什么要选择塑胶跑道
- wangEditor3菜单修改之如何添加分割线
- EEPlat 主子表和对象引用配置实例
- 以下关于c语言中static和const,c语言中static const作用
- iOS中 点击按钮无响应
- Matlab2017a/b激活license.lic文件
- 深度揭秘:诺基亚的百年沧桑
- 应用html的DIV+CSS制作牛顿摆
- STM32CUBE 定时器使用
- 电视机hdr是什么功能
- 百度提前批-面试凉凉之-梯度下降