zl程序教程

您现在的位置是:首页 >  后端

当前栏目

23前端学习之js高级: 正则表达式

2023-09-27 14:29:29 时间

一、什么是正则表达式:

JavaScript中,在正则表达式是对象;

二、正则表达式在JavaScript中的使用:

1. 创建正则表达式:

表达式要使用斜线(/)括起来
正则表达式不需要引号;

1.1 通过调用RegExp对象来创建:

var reg = new RegExp(/表达式/);

1.2 通过字面量创建:

var reg = /表达式/

2. 测试正则表达式 test:

test()正则对象方法, 用于检测字符串是否符合该规则, 该对象会返回true或false, 其参数是测试字符串:

regObj.test(str);
  • regObj: 写的正则对象;
  • str: 要测试的文本;
  • 检测str文本是否符合regObj正则表达式;

三、正则表达式中的特殊字符:

1. 正则表达式的组成:

2. 边界符:

正则表达式中的边界符(位置符)用来提示字符所处的位置;

边界符说明
^表示匹配行首的文本(以谁开始)
$表示匹配行尾的文本(以谁结束)

3. 字符类:

字符类说明
[]表示有一系列字符可供选择, 只要匹配到其中一个就可以了/[abc]/ 包含a或b或c
[-]方括号内部, 范围符-/[a-z]$ a到z结尾/

例如:

var reg = /[abc]/
console.log(reg.test('andy'));	// true

4. 量词符:

量词符用来设定某个模式出现的次数

量词说明
*重复0次或多次
+重复一次或多次
?重复0次或1次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

5. 括号总结:

中括号[]: 字符集合, 匹配方括号中的任意字符;
大括号{}: 量词符, 里边表示重复的次数;
小括号(): 表示优先级;

6. 预定义类:

预定义类值得是某些常见模式的简写方式:

预定义类说明
\d匹配0-9之间的任意数组, 相当于[0-9]
\D匹配除0-9以外的字符, 相当于[^0-9]
\w匹配任意字母、数字和下划线, 相当于[A-Za-z0-9_]
\W匹配除了字母、数字和下划线以外的字符, 相当于[^A-Za-z0-9_]
\s匹配空格(包含换行符、制表符、空格等), 相当于[\t\r\n\v\f]
\S匹配非空格的字符, 相当于[^\t\r\n\v\f]

四、正则表达式中的替换:

1. replace替换:

replace()方法可以实现途欢字符串操作, 用来替换的参数可以是一个字符串或是正则表达式;

stringObject.replace(regexp/substr, replacement)
  • 第一参数: 被替换的字符串 或者 正则表达式;
  • 第二参数: 替换为的字符串;
  • 返回值: 被替换后的新字符串;

2. 正则表达式参数:

/表达式/[switch]

switch(也称修饰符)按照什么样的模式来匹配, 有三种模式:

  • g: 全局匹配 /hello/g
  • i: 忽略大小写 /hello/i
  • gi: 全局匹配 + 忽略大小写 /hello/gi