正则表达式梳理
文章目录
- 正则表达式
- 元字符
- 修饰符
- 量词
- 位置锚点
- 一些常用的正则表达式
正则表达式
正则表达式是一种用来描述字符串规则的表达式。 用于判断字符串是否符合该规则
在js中这样使用
const reg = /abc/;
reg.test('字符串')
//用于判断字符串是否符合定义的reg规则
以下总结js中一些常用的规则
元字符
[abc]
匹配 a 或 b 或 c- 当需要的元素够多时,可以使用区间简写区间
[a-z0-9]
修饰符
加在末尾的修饰符
g
全局匹配
const str = "cat bat fat";// 1. 没有全局标志 g
const reg1 = /at/;
console.log(str.match(reg1));
// 结果:["at"] (只找到第一个就停止)// 2. 有全局标志 g
const reg2 = /at/g;
console.log(str.match(reg2));
// 结果:["at", "at", "at"] 找到所有
利用其进行替换
// 替换const willre ='我777515474我'const aim =willre.replace(/我/i,'你')const aim1 =willre.replace(/我/g,'你')console.log(aim);console.log(aim1);//全局替换
i
忽略大小写
量词
{n}
恰好 n 次{n,
} 至少 n 次{n,m}
n 到 m 次
?
等价于 {0,1}
*
等价于{0,}
+
等价于 {1,}
位置锚点
^
字符串开始$
字符串结尾
当规则为/^a$/
此时则只有字符a匹配该规则
此外还有|
选择表达式
/规则a|规则b/
,满足其中任一即匹配
这是一些综合以上规则的判断
const reg2=/^哈/console.log(reg2.test('哈哈'))// $以..结尾const reg3=/哈$/console.log(reg3.test('哈哈'))//俩个都有是精确匹配 只有此一种为trueconst reg4=/^哈$/console.log(reg3.test('哈'))// 元字符量词// 重复次数console.log(/[a-zA-Z0-9]{4,10}/.test('asd'))
一些常用的正则表达式
- 手机号
/^1[3-9]\d{9}$/
- 邮箱
/^[\w\.-]+@[\w\.-]+\.\w+$/
- 汉字
^[\u4e00-\u9fa5]{0,}$
- 邮箱
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$