JavaScript正则表达式

一、前言

1、概念

        正则表达式(Regular Expression)是一种用于匹配和处理字符串的强大工具。它由一系列特殊字符和普通字符组成,用于描述字符串的模式。正则表达式常用于文本处理、网页解析、编程等领域。

2、作用

  • 判断文本中的字符是否符合正则表达式。
  • 替换文本中的指定字符。

二、语法

1、创建:

正则表达式创建的两种方式:

// 创建方式一:

var reg1 = new RegExp('pattern', 'attributes');   

// 创建方式二:

var reg2 = /pattern/attributes

参数 pattern:是一个字符串,指定了正则表达式的模式或其它正则表达式。

参数 attributes:是一个可选的字符串,包含属性 'g'、'i' 分别用于指定全局匹配、区分大小写的匹配。

返回值:一个新的 RegExp 对象,具有指定的模式和标志。

2、使用方法

在JavaScript中,正则表达式通常用于两个字符串方法:search() 和 replace()。

search() 方法用于检索字符串中指定的子字符串,或检索于正则表达式相匹配的子字符串,并返回子字符串的起始位置(下标)。

replace() 方法用于在字符串中用一些字符串替换另一些字符串,或替换一个与正则表达式匹配的子串。

var str = '56468aaa421347ddd1153115bbb697988425';

var reg = /[a-z]/ig;

//查找子字符串 aaa在字符串 str中的起始位置的下标。

var  a  = str.search(reg, 'aaa');   // 5

//将字符串 str中的英文字母去掉。( a到 z,不区分大小写)

var  b  = str.replace(reg, '');    // 564684213471153115697988425

3、操作方法

操作方法:

方法描述
String.prototype.replace()字符串替换
String.prototype.search() 字符串查找
String.prototype.match()字符串匹配提取
String.prototype.split()字符串根据正则表达式分割
RegExp.prototype.test() 根据正则规则验证字符串
RegExp.prototype.exec() 根据正则表达式规则提取字符串

三、修饰符

1、修饰符

可以在全局搜索中不区分大小写

修饰符描述
i执行对大小写不敏感的匹配。
g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m执行多行匹配。

2、一元符

元字符描述
.匹配除换行符之外的任意字符
\w匹配字母数字下划线,等同于:[a-zA-Z0-9_]
\s匹配任意空白符
\d匹配数字,等同于[0-9]
\b匹配单词边界
|或匹配,如 /x|y/ 正则可匹配x或y两个字符
^匹配字符串的开始
$匹配字符串的结束

3、反义符

反义符描述
[^x]匹配除“x”之外的所有字符,其中“x”可以为任意字符
[^xyz]同上,匹配除“x、y、z”之外的任意字符
\W匹配除了字母、数字、下划线之外的所有字符,等同于:[^\w]
\S匹配除空白符之外的任意字符,等同于:[^\s]
\B匹配不是单词边界的字符,等同于:[^\b]
\D匹配不是数字的所有字符,等同于:[^\d]

4、转义符

转义符描述
\xnn匹配十六进制数
\f匹配换页符,等同于:\x0c
\n匹配换行符,等同于:\x0a
\r匹配回车符,等同于:\x0d
\t匹配水平制表符,等同于:\x09
\v匹配垂直制表符,等同于:\x0b
\unnnn匹配Unicode字符,如:\u00A0

5、重复匹配

重复匹配字符描述
*重复出现零次或多次
+重复出现一次或多次
重复出现零次或一次
{n}重复出现n次
{n,}至少重复出现n次
{m,n}重复重现m到n次,其中,m<n

6、贪婪字符

贪婪字符描述
*?重复任意次,但尽可能少的重复
+?重复一次或多次,但尽可能少的重复
??重复零次或一次,但尽可能少的重复
{m,n}?重复m到n次,但尽可能少的重复
{n,}?重复n次以上,但尽可能少的重复
  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值