正则表达式是一种描述文本模式的对象,可以用某种模式去匹配一类字符串。

在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常用正则表达式及其语法相关推荐

  1. JS常用正则表达式和JS控制输入框输入限制(数字、汉字、字符)

                                   JS常用正则表达式和JS控制输入框输入限制(数字.汉字.字符) 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数 ...

  2. 收集的JS常用正则表达式等

    //   短日期,形如 (2003-12-05) function strDateTime(str) { var r = str.match(/^(d)(-│/)(d)2(d)$/); if(r==n ...

  3. 收集的JS常用正则表达式等(转载)

    //   短日期,形如 (2003-12-05)  function strDateTime(str)  {  var r = str.match(/^(d)(-│/)(d)2(d)$/);  if( ...

  4. JS常用正则表达式表单验证代码大汇总

    正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下: 测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或 ...

  5. js 常用正则表达式表单验证代码

    正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下: 测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或 ...

  6. js 正则或_Web前端工程师要知道的JS 常用正则表达式

    说起正则表达式,相信从事web前端开发的人一定很熟悉,正则表达式通常被用来检索.替换那些符合某个模式(规则)的文本,是web前端开发中经常会用到的.今天,就为大家分享JS常用的正则表达式以及创建正则表 ...

  7. 部分js常用正则表达式

    部分常用的正则表达式 (https://github.com/validatorjs/validator.js 也可直接使用 外部组件库 validator.js 进行各种正则校验 该组件库基于MIT ...

  8. JS:正则表达式详细语法基础

    正则表达式 一.字符描述 支持的边界元字符 二.字符范围 2.1示例 三.选择操作 3.1 基本选择模式 3.2 多重选择模式 四.重复类量词 4.1重复类量词示例 五.惰性模式 5.1定义惰性匹配 ...

  9. JS常用正则表达式及验证时间的正则表达式

    1.在input框中只能输入金额,其实就是只能输入最多有两位小数的数字 //第一种在input输入框限制 <input type="text" maxlength=" ...

最新文章

  1. arc diff 指定版本号_Phabricator客户端安装
  2. 循环遍历Java字符串字符的规范方法——类似python for ch in string
  3. linux驱动学习笔记(2.4) scull 脚本scull_init
  4. 检测数据类型的几种方式
  5. navicat for mysql 导入psc文件
  6. java图像分类源码_在Android设备上使用NCNN图像分类的demo
  7. windbg调试实例(4)--句柄泄露
  8. rebuild online意外终止导致ora-8104错误的实验
  9. Gradle中的buildScript,gradle wrapper,dependencies等一些基础知识
  10. 学校为什么要单位接收函_学校、小区运动场为什么要选择塑胶跑道
  11. wangEditor3菜单修改之如何添加分割线
  12. EEPlat 主子表和对象引用配置实例
  13. 以下关于c语言中static和const,c语言中static const作用
  14. iOS中 点击按钮无响应
  15. Matlab2017a/b激活license.lic文件
  16. 深度揭秘:诺基亚的百年沧桑
  17. 应用html的DIV+CSS制作牛顿摆
  18. STM32CUBE 定时器使用
  19. 电视机hdr是什么功能
  20. 百度提前批-面试凉凉之-梯度下降

热门文章

  1. 云原生项目正确的数据库选择
  2. 安装APP时弹窗未知风险未知开发者,还能下载吗?
  3. jquery tmpl js 模板详解
  4. ROS python编程
  5. css3实现一个闪电效果
  6. RabbitMQ--交换器类型/队列模式--使用/教程/详解
  7. 基于滑模控制的PMSM直接转矩控制仿真模型
  8. Keil的安装和PJ
  9. 百度之星A题 调查问卷
  10. [NAKED-ART] 05-01comp NO.00151 淑女の情景 [209P474.97M]