《正则表达式》

2021.03.16
评论

基础符号

| :满足左右两边的表达式

[]:原子表,只能匹配一个,存在于内,如:[a-z]在a-z的写字母中、[124-5]在1、2、4、-、5中

():原子组,存在于内,如:(12|34)在12、34中;

^ $:起始 结束,常配合完整验证(因为正常情况下匹配不到就停止);单独内部使用^为非,如:[^\d]表示除了数值

:位数,如:{3,5}表示3-5位、{3}表示3位

\d:一个数值,\D非数值

\b:元字符,通常原来间隔英文单词,如:/\b adic \b/

\s:空白,\S非空白

\w:字母数字下划线

+:一个或多个

*:没有或多个

?: 有或者没有

.:除换行外任意字符

i g m u:大小写不敏感 全局 多行匹配 特殊处理

基础方法

match(),将字符串根据正则拆分为数组,不会改变字符串本身

str.match(reg)

var str = 'hsakjd55ad4asda645'
console.log(str.match(/\d/g))
//(6) ["5", "5", "4", "6", "4", "5"]

test(),监测字符串是否满足正则,返回bool

reg.test(str)

var str = 'hsakjd55ad4asda645'
console.log(/d/.test(str))
// true

exec(),与match类似,但其有个属性lastIndex控制每次执行后的次数(正则需要使用全局模式g才会记录)

扩展方法

一.replace(),将支持正则的内容处理后返回,不会改变字符串本身

str.replace(reg,func)

func携带符合正则的值,方法内返回处理结果

let str = 'www.adicw.cn'
let rel = str.replace(/cn/, item => {
	return 'com'
})
console.log(str, rel)
// www.adicw.cn www.adicw.com

常见实例

  1. /\p/gu:匹配对应的文字,关键字\p、sc=Han、gu