正则表达式

前言

如果你学会了,可以忽略本文章,或去项目经验地图寻找更多答案


原则

1.找规律 
2.不要追求完美
3.思考:
什么开头?什么结束?什么类型?
多少位数?什么范围?出现次数?

语法

一:对象写法
let reg = new RegExp(/\d{5}/)
let reg = new RegExp("\\d{5}")
let str = '我的号码是12345'
console.log(reg.test(str))  //true

二:字面量方式:
let reg = /\d{1,5}/
console.log(reg.test("我的幸运数字是888"))  //true

三:简写
console.log(/[a-zA-Z]+/.test('hello'))  //true

API

reg.test(str) :判断
定义:判断参数是否与正则匹配
参数:字符串
返回:布尔值

str.replace(/\s+/g,""):替换
定义:匹配参数1的正则,替换成参数2的值
参数:参数1:正则,参数2:字符串或其他
返回:被替换的结果
let str = '你好,我更好'
console.log(str.replace(//g, '帅'))  //你帅,我更帅

str.match(reg):提取
定义:匹配参数正则,返回一个数组
参数:正则
返回:数组
let str = "中国移动:10086,中国联通:10010,中国电信:10000"
console.log(str.match(/\d{5}/g))   //array

reg.exec(str):提取
定义:使用正则匹配参数,每次返回一个,需要遍历
参数:字符串
返回:数组
let str = '哈哈123哈哈456哈哈789'
let ret = /\d{3}/g
console.log(ret.exec(str)) //123
console.log(ret.exec(str)) //456
console.log(ret.exec(str)) //789
console.log(ret.exec(str)) //null

转义符

\:转成普通的符号.
let price = 23.24
console.log(/\d+\.\d+/.test(price)) //true

匹配符:数字d,空白s,特殊w

匹配符:数字d,空白s,特殊w
\d 数字中的任意一个
let num = 'sdfs88jj77'
console.log(num.match(/\d+/g))  //["88", "77"]
console.log(num.match(/\d+/g).join('') * 1)  //数字8877

\D

你可能感兴趣的:(工具,正则表达式)