正则表达式

175 阅读2分钟

正则表达式: 两种写法:(大部分情况使用自变量的形式) 1.//自变量形式写法,两个//代表边界符 2.new RegExp()对象创建 1.获取字符中的数字 let str="aaaaa34fa99" hd.match(/\d/g).join(""); \d是数字匹配 d代表字符d 加上反斜杠就是转义代表数字 g是全局

  1. 查看字符串中是否包含指定的的字符 let str="3455@.com" console.log(/@/.test(str)); 这种写法不支持变量,如果要使用变量需要用eval()函数 let a="@" console.log(eval(/${a}/).test(str));

3.Let reg=new RegExp("/w","g"); /w:表示字母数字下划线 let str="a3_33" str.replace(reg,"哈哈")

4.let str="hellow word"; console.log(/h|w/.test(str)) | 是或者的意思,查看字符中是否包含h或者w

5.let tel='010-0000000' console.log(/010-\d{7,8}|020-\d{7,8}/.test(tel)) console.log(/(010|020)-\d{7,8}/.test(tel)) 检查电话号码是不是北京的或者上海的 -在正则里面有含义所以给它反斜杠转义- \d代表的是数字 {7,8}表示数字7到8位的长度 (010|020)这样写 代表原子组()

转义:

  1. 正则里面.表示除换行外任何字符,还有就是普通的. 但是使用普通的. 需要反斜杠转义下 .

7.let price=12.23; console.log(/\d+.\d+/.test(price)); true

let reg=new Regexp("\d+\.\d+");
reg.test(price) true

对象里面\d就是d 所以需要再加一个反斜杠才会和自变量一样 要是分不清可以打印 console.log("\d+\.\d+")看下和自变量一样就OK

  1. let url="www.baidu.com"; console.log(/https?://\w+.\w+.\w+/.test(url)) //因为这个在正则字自变量中代表边界符,所以需要加反斜杠转义

9.let str="3"; console.log(/^\d/.test(str))开始/.test(str)) ^ 是开始 结束边界 表示起始和结束都是数字

10.let str="abc" console.log(str.match(/^[a-z]{3,6}$/)) [a-z] 表示a到z {3,6} 表示3到6位

11.let str="aaa2021" console.log(str.match(/\d+/g))

  • 表示一个或者多个 g 全局匹配一直走到字符最后

12.let str="adfafsd2021" console.log(str.match(/\D+/)) adfafs \D 表示除了数字

  1. \s 空白(空格 换行符) \S 除了空白(空格 换行符)

14.let str= 张三:010-99999999,李四:020-88888888; console.log(str.match(/[^-\d:,\s]+/g)) ["张三","李四"]

[] 表示原子表 原子表里面的^表示除了- 数字 : ,空白

15.\w 表示 字母 数字 下划线
let str="asdfsdfdsf2021_" console.log(str.match(/\w+/))

16.let emial="598787869@qq.com" console.log(emial.match(/^\w+@\w+.\w+$/))

17.\W 表示除了 字母 数字 下划线 console.log("adfaf@".match(/\W/));@

  1. \d包含数字
    \w包含 字母 数字 下划线 . 包含除了 换行符外的所有字符

let str="asdfsfsdf"; console.log(str.match(/.+/))

19.模式修正符 i 匹配的时候不区分大小写 g 匹配全部 let str="aaRRd" console.log(str.match(/r/gi))

let str="hhUllu"; console.log(str.replace(/u/gi,"@")) hh@ll@

20.m多行匹配修正符

21.排除 let str="dsafufdsafeu"; console.log(str.match(/[^ue]/gi/)); 在元组里面加上^就是除了u和e /g是全局 /i是不区分大小写 模式修正符可以多个组合一起使用/gi