前端正则表达式基础

69 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第25天,点击查看活动详情

正则表达式

边界符

^ 表示匹配行首的文本(以谁开始)

$ 表示匹配行尾的文本(以谁结束)

var reg = /^abc/;

 

字符类

[]方括号 表示一系列可供选择,只要匹配其中一个就可以了

var rg = /[abc]/; 只要包含有a,b,c都返回true

rg.test('andy'); true

var reg = /^[abc]$/; //三选一,只有a,b,c这三个字母才返回true

var reg =/^[a-z]$/ //26个英文字母任何一个字母返回true, -表示a-z的范围

 

字符组合

var reg1 = /^[a-zA-Z0-9]$/; //26个英文字母(大小写都可以),任何一个字母返回true;

var reg1 = /^[^a-zA-Z0-9]$/; //取反,方括号内部加上^表示取反

 

量词符

*重复0次或者更多次

+重复1次或更多次

?重复0次或1次

{n}重复n次

{n,}重复n次或更多次

{n,m} 重复n到m次

 

用户名只能为英文字母数字,下划线或者短横线,用户名长度为6-16位

/^[a-zA-Z0-9-_]{6,16}$/

 

大括号,量词符,里面表示重复的次数

中括号 字符集合,匹配方括号中的任意字符

小括号表示优先级

 

预定义类简写模式 方括号内^表示取反

\d 匹配0-9之间的任一数字, [0-9]

\D 匹配所有0-9以外的字符, [^0-9]

\w 匹配任意的字母数字和下划线, [a-zA-Z0-9_]

\W 除所有字母数字下划线以外的字符 [^A-Za-z0-9]

\s 匹配空格(包括换行符,制表符,空格) [\t\r\n\v\f]

\S 匹配非空格的字符 [^/t/r/n/v/f]

 

常用正则表达式

手机号验证 /^1[3|4|5|7|8]{9}$/;

座机号 /^\d{3}-\d{8}|\d{4}-d{7}$/ /^\d{3,4}-\d{7,8}/

QQ验证 /^[1-9]\d{4,}$/;

昵称验证 /^[\u4e00-\u9fa5]{2,8}$/

 

正则替换replace

replace方法可以实现替换字符串的操作

用来替换的参数可以是一个字符串或者是一个正则表达式

全部替换 str.replace(/a/g,'b');

忽略大小写 str.replace(/a/gi,'b');