前言
如果你学会了,可以忽略本文章,或去项目经验地图寻找更多答案
原则
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