js正则表达式
转义字符:
.:任意字符
\d(digital):数字 [0-9]
\w(world) :[a-z0-9_]
\s(space) :空白字符
\n:换行符
\r:回车符
\f:换页符
\t:制表符
\v:垂直制表符
量词:
{n,m}:最少n次,最大m次
{n,} :至少是n
* :任意字符 {0,}
? :0次或者一次 {0,1}
+ :一次或任意次{1,}
{n}:正好n次
( ):
字符串方法
match():匹配
replace():替换
search():查找位置
split():分割
正则方法
test():检索字符串指定的值,返回true或者false
exec():检索字符串指定的值,返回找到的值,并确定其位置
compile(): 编译正则表达式
实例1:将aabb 改变为 bbaa
var str='aabb'; var reg=/(\w)\1(\w)\2/ // var str2= str.replace(reg,'$2$2$1$1')//replace 不改变原字符串 var str2= str.replace(reg,function($,$1,$2){ return $2+$2+$1+$1 }) console.log(str2)
实例2:将字符串 the-first-name 改为 thisFirstName
var str='the-first-name'; var reg=/-(\w)/g; var str1=str.replace(reg,function($,$1){ return $1.toUpperCase(); }) console.log(str1)
实例3 (正向预查、正向断言) 查找字符串 abacad 里面的a但是在b前面
var str=abacad; var reg=/a(?=b)/g; //var reg=/a(?!b)/g; //非 str.macth(reg)
实例4:去掉字符串里的空格
let str=' hello World ' let re=/\s+/g let newStr=str.replace(re,'')console.log('去掉字符串里的空格',newStr)
实例5:QQ号校验
let str='1246626118' let re=/^([1-9]\d{4,10})$/ console.log('验证QQ',re.test(str))
实例6:邮箱校验
let str='1246626118@qq.com'; let re=/^\w+@[a-z0-9]+\.[a-z]{2,4}$/ console.log(re.test(str))
实例7:去掉首位的空格
let str=' hello world '; let re=/^\s+|\s+$/g let newStr=str.replace(re,'') console.log('去掉首位的空格','('+newStr+')')
实例8:检测中文
let str='传说的html'; let re=/[\u4e00-\u9fa5]/; console.log('检测中文',re.test(str)) console.log('charAt',str.charAt(1))
实例9:手机号验证
let tel='15953173698'; let re=/^1[34578]\d{9}$/ console.log('手机号验证:'+re.test(tel))
实例10:去掉html标签
let str='<p class="title">helloworld/p>' let re=/<[^<>]+>/g console.log(str.replace(re,''))
实例11:获取网址参数
let str='http://www.XXXXXX.com/?userName=admin&pwd=123456';
console.log('参数:'+str.match(re)[0].match(/[^?&=]+/g))