以前觉得正则表达很难,今天又加强了一下正则表达的学习收获挺大的
在书写正则表达式的过程中我们遇到数字就用
最近在学习原生js,所有例子都在js下测试
常见案例一:在内容中匹配至少两位数字
var pattern=/[0-9]{2,}/gm;
var str=’234 sdf 33445,sfs’
var result=str.match(pattern);
document.write(result);
测试结果:234,33445
常见案例二:在内容中匹配手机号码(手机号码是11个纯数字组成)
var pattern=/[0-9]{11,11}/gm;
var str=’234 sdf 33445,s12345678901,sfds’
var result=str.match(pattern);
document.write(result);
测试结果:12345678901 (注意这里就是匹配到连续的11个数字)
其中[0-9]可以使用\d代替
常见案例三:在内容中含有非字母数字以及下划线(常用到密码验证中)
var pattern=/\W/gm;
var str=’joyous23_sdf,中文’
var result=str.match(pattern);
document.write(result);
测试结果:,,中,文
注:如果将\W换成\w就是匹配含有字母和数字以及下划线
常见案例四:匹配内容中以固定内容开头
var pattern=/^jo/gm;//匹配内容以jo开头
var str=’joyous23_sdf,中文’
var result=str.match(pattern);//匹配不到则返回null,匹配到则返回匹配内容
document.write(result);
测试结果:jo
常见案例五:匹配内容中以固定内容结尾
var pattern=/\.html$/gm;
var str=’http://www.0377joyous.com/archives/1028.html’;
var result=str.match(pattern);//匹配不到则返回null,匹配到则返回匹配内容
document.write(result);
测试结果:.html
注释:其中\.是匹配那个点的,因为在正则中那个.代表出去换行之外的任意字符
常见案例六:匹配内容中存在x字符
含有至多1个x:
var pattern=/j?/gm;
var str=’jwf’;
var result=str.match(pattern);//匹配不到则返回null,匹配到则返回匹配内容
document.write(result);
测试结果:j,,,
含有至少1个x:
var pattern=/j?/gm;中的问号换成+即可,如果换成*就是任意多个(当然也可以为0)
含有至少m个,最多n个:
var pattern=/j?/gm;换成var pattern=/j{3,5}/gm;
常见案例七:匹配内容中含有指定字符串或者字符中任意一个
var pattern=/Joyous|joyous|abc/gm;
var str=’hello Joyous ! 你好,my name abc’;
var result=str.match(pattern);//匹配不到则返回null,匹配到则返回匹配内容
document.write(result);
测试结果:Joyous,abc
常见案例八:匹配结果再利用
var pattern=/id=([0-9]{1,})&cid=([0-9]{1,})/;
var str=’id=23&cid=34′;
str.match(pattern);
document.write(RegExp.$1);
document.write(‘,’);
document.write(RegExp.$2);
测试结果:23,34