正则表达式

正则表达式

一、什么是正则表达式

正则表达式,全称“Regular Expression”,在代码中常简写为regex、regexp、RE正则表达式,就是用某一种模式去匹配一类字符串的公式

二、正则表达式的定义方法

  • 显示定义(构造函数)

    var 变量名 = new RegExp(‘正则表达式模式’)

  • 隐式定义(字面量)

    var 变量名 = /正则表达式模式/

    举个栗子

    var str = new ReExp("\d+")
    var str = /\d+/
    //两种方式等价
    

三、正则表达式的常用方法

  • test 正则去匹配字符串,如果匹配成功就返回true,匹配失败就返回false

    语法: 正则.test(字符串)

var str = 'abcdef'
var RE = /b/
alert(RE.test(str))
  • search 正则去匹配字符串,如果匹配成功,就返回匹配成功的位置,如果匹配失败就返回-1

    语法: 字符串.search(正则)

    var str = 'abcdef'
    var RE = /b/
    alert(str.search(RE))	//返回1
    var RE1 = /w/
    alert(str.search(RE1))	//返回-1
    
  • match 正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,如果匹配不成功,就返回null

    语法: 字符串.match(正则)

    var str = 'aaa23df53'
    var re = /\d+/g
    alert(str.match(re))	//23,53
    
  • replace 正则去 匹配字符串,匹配成功的字符串被新的字符串替换掉

    语法: 字符串.replace(正则,新字符串)

    var str = 'aaa'
    var re = /a/
    str = str.replace(re,'b')
    alert(str)	//baa
    

四、常用元字符

普通字符就是a-z,0-9这类的常见字符。其中特殊字符又称为“元字符”。

  • \d :匹配数字,相当于[0-9]
  • \D :匹配非数字,相当于[^0-9]
  • \w:匹配字母、数字、汉字或下划线
  • \W:匹配任意不是字母、数字、汉字或下划线的字符
  • \s:匹配任意的空白符,如空格,换行符,制表字符
  • \S:匹配任意不是空白符的字符
  • .:匹配除了换行符以为的任意字符
  • [...]:匹配方括号中的所有字符
  • [^...]:匹配非方括号的所有字符

举个栗子

用正则表达式匹配的是中国的电话号码,以0开头,然后是两个数字,然后是一个连字号“-”,最后 是8个数字。如:028-88888888

let reg = /0\d{2}-d{8}/

五、连接符-范围

  • [0-9]:匹配数字,等价于\d
  • [a-z]:匹配英文小写字母
  • [A-Z]:匹配英文大写字母:
  • [0-9a-zA-Z]:匹配所有数字和大小写字母

六、定位符-边界

在正则表达式中,定位符就是限定某些字符出现的位置。

  • ^ 限定开始位置的字符
  • $ 限定结尾位置的字符
  • \b 限定单词(字)边界的字符
  • \B 限定非单词(字)边界的字符

七、修饰符

一、修饰符

  • g: global 全文搜索,不添加,搜索到第一个匹配停止
  • i: ignore case 忽略大小写,默认大小写敏感
  • m: multiple lines 多行搜索

二、用法:

let reg = /\bis\b/
let str = 'He is a boy,This is a dog.Where is she?'
str.match(reg)
//正则后加g,匹配所有的
var reg = /\bis\b/g

八、特殊转义符

  • \f 匹配换页符
  • \n 匹配换行符
  • \r 匹配回车符
  • \t 匹配制表符
  • \v 匹配垂直制表符
  • \\ 匹配 \
  • \" 匹配 "
  • \' 匹配 ’

九、正则工具网站

https://regexper.com/
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值