JavaScript——正则表达式

正则表达式是一种用于匹配字符串的规则表达式,包括元字符如.、s、d等,以及修饰符如*g、*?、+等,用于控制匹配次数。文章介绍了正则表达式的构造、常用操作如test、exec、match和replace,以及在字符串验证、提取和替换中的应用。
摘要由CSDN通过智能技术生成
  1. 概念

正则表达式:又称为规则表达式

主要式由一些特定字符所组成的规则,专门用来规范字符串使用

  1. 定义
//构造函数
var reg=new RegExp(过滤规则,修饰符)
//字面量
var reg=/具体的规则/
  1. 组成部分

具体规则的组成部分分为2部分:

  • 字符:表示字符串组成部分的字符

  • 普通字符:普通字符串中的字符

  • 元字符:具有特殊含义的特殊字符

  • 修饰符:修饰字符的规则

(1)元字符:

.:匹配除换行符以外的任意字符

\:转义符,把有意义的符号转为没有意义,没有意义的字符转为有意义

\s:匹配空白字符

\S:匹配非空白字符

\d:匹配0-9的数字

\D:匹配非0-9的数字

\w:匹配数字、字母、下划线

\W:匹配非数字、字母、下划线

\b:匹配字符串中边缘(换行和空格)

[]:匹配[]中的任意一个字符

(2)修饰符:

* :表示前一个字符出现0到多次

+:表示前一个字符出现1到多次

?:表示前一个字符出现0到1次

{n}:表示前一个字符出现n次

{n,}表示前一个字符出现n到多次

{n,m}:表示前一个字符出现n到m次

(3)边界符:

^:通常放在开头,表示字符串必须以他后面的字符开头

$:通常放结尾,表示字符串必须以他前面的字符结尾

注意:在正则表达式中,如果有^$边界符时,采用的是逻辑运算符&&来进行判断;如果没有^$边界符时,采用的是逻辑运算符||来进行判断;

1)特殊符号:

():限定一组字符,结合(或)运算符使用,可以限定多组字符

[ ]:字符集合,结合-(范围),0-9表示所有数字

[^]:反字符集合,匹配[ ]以外的字符

-:范围

|:或

[\u4e00-\u9fa5]:匹配任意一个中文汉字

(5)模式修正符(标识符):

i:不区分大小匹配

g:全局匹配

m:多行匹配

  1. 使用方法
  • 验证字符串的方法

//test方法返回布尔值,表示字符串是否满足规则。
正则.test(被验证的字符串)   
//从字符串中查找满足规则部分在字符串中的下标,找到就返回下标,找不到返回-1。
字符串.search(正则表达式)   
  • 提取字符串的方法

//exec返回数组,数组的第一个元素是满足规则的部分。如果字符串中没有满足规则的,则返回null
正则.exec(字符串)
//返回值跟exec一样
字符串.match(正则表达式)
  • 替换字符串的方法

//eplace方法可以将满足规则的部分替换成新的部分
字符串.replace(正则表达式, 新的部分)
  • 将字符串转为对象

//字符串分割方法
var str = "width:200px;height:200px;margin:10px;padding:50px"
var obj = {}
var arr=str.split(";")
for(var i=0;i<arr.length;i++){
    var brr=arr[i].split(":")
    obj[brr[0]]=brr[1]
}
console.log(obj)

//正则方法配合exec()
var str = "width:200px;height:200px;margin:10px;padding:50px"
var reg = /([^:;]+):([^;]+)/g
var obj = {}
var arr = reg.exec(str)
while (arr != null) {
    obj[arr[1]] = arr[2]
    arr = reg.exec(str)
    if (!arr) {
        break
    }
}
console.log(obj)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值