//正则创建的第一种方法 var zznumber1=/abc/; //正则创建的第二种方法 var zznumber2=newRegExp('abc'); console.log(zznumber1); console.log(zznumber2);
边界符号测试
//边界符号 ^ var reg1=/^abc/;//加上^只能在开头 console.log("边界符号测试:"+reg1.test("123abc"));//false console.log("边界符号测试:"+reg1.test("abc1"));//true
//边界符号$ 结束符 var reg2=/abc$/; console.log(reg2.test('abc'));//true console.log(reg2.test('abca121'));//false console.log(reg2.test('123abc'));//true
//边界符 ^ $一起使用 var reg3=/^abc$/; console.log("边界符开始结束:"+reg3.test('abc'));//true console.log("边界符开始结束:"+reg3.test('12abc45'));//false console.log("边界符开始结束:"+reg3.test('abc12'));//false console.log("边界符开始结束:"+reg3.test('21abc'));//false console.log("边界符开始结束:"+reg3.test('abc1872abc'));//false
集合测试
//集合[] 多个里选中一个 var reg4=/[abc]/; var reg5=/[abc]$///结尾是任意一个方括号里的字母 console.log("集合测试:"+reg4.test('avhg'));//true console.log("集合测试:"+reg5.test('hja'));//true
//汉字的验证 最少2个最多8个 var zw=/^[\u4e00-\u9fa5]{2,8}$/; console.log(zw.test("你好啊"));
var pc=/[^abc]///排除
var reg10=/^[^a-zA-Z0-9_]/; console.log("排除测试:"+reg10.test('$abc'));//true console.log("排除测试:"+reg10.test('37acd'));//false console.log("排除测试:"+reg10.test('_tty'));//false
量词测试
var reg11=/^a*$/; //只有/^a$/只能一次 /^a*$/可以有多次a *:0次或者多次 console.log(reg11.test('aaa')); console.log(reg11.test('cd'));
console.log("-------------------------------"); var reg12=/^a+$///+:一个或者多次 console.log(reg12.test('aaa')); console.log(reg12.test('cd')); console.log(reg12.test('cd'));
var reg13=/^a?$///0次到一次 console.log(reg13.test('aaa')); console.log(reg13.test('a')); console.log(reg13.test('cd'));
console.log("-------------------------------"); var reg14=/^bo{2,}m$/; //o要有2个 console.log(reg14.test('bom')); console.log(reg14.test('boom')); console.log(reg14.test('booom'));
示例
//手机号码 var dh=/^[13|14|15|18|17][0-9][0-9]{4}[0-9]{4}/; console.log("电话验证:"+dh.test("18908762854")); var iphone=/^13[0-9]|15[0-9]|18[0-9]|17[0-9][0-9]{4}[0-9]{4}/; console.log("电话验证:"+iphone.test("12309652348")); //账号 var ac=/^[a-zA-Z][a-zA-Z0-9_]{4,15}/; console.log("账号:"+ac.test("Xyj273")) //密码 var pass=/^[a-zA-Z0-9_]{5,17}/; console.log("密码:"+pass.test("xyh11212")) //qq号 var qqac=/^[1-9][0-9]{4,9}/; console.log("QQ账号:"+qqac.test("27828911"));
\d
// \d:等价于[0-9] var reeg1=/^\d$/; console.log("reeg1"+reeg1.test("8"));
\D
// \D:等价于[^0-9] 排除0-9 var reeg2=/^\D$/; console.log("reeg2"+reeg2.test("9")); console.log("regg2:"+reeg2.test("/"));
\w
// \w:等价于[0-9a-zA-z_] 字母数字下划线 var reeg3=/^\w$/; console.log("reeg3:"+reeg3.test("|")); console.log("reeg3:"+reeg3.test("a")); console.log("reeg3:"+reeg3.test("R")); console.log("reeg3:"+reeg3.test("0"));
\W
// \W:等价于[^a-zA-Z0-9_] 排除数字字母下划线 var reeg4=/^\W$/; console.log("reeg4:"+reeg4.test("+")); console.log("reeg4:"+reeg4.test("A")); console.log("reeg4:"+reeg4.test("a")); console.log("reeg4:"+reeg4.test(" "));
//正则表达式修改 var t="今天TM好冷啊TM,tmd"; var reg=/TM/gi; var ok=t.replace("今天","**"); console.log(ok);
var zz=t.replace(reg,"****"); console.log(zz);
获取匹配内容
//获取匹配的内容 var st="中国移动10086 中国电信10000 中国联通10010"; var mval=st.match(/\d{5}/g); console.log(mval);
var d="2005-10-13"; var sz=d.match(/(\d{4})-(\d{2})-(\d{2})/); console.log("日期:"+sz); console.log(RegExp.$1);//年 console.log(RegExp.$2);//月 console.log(RegExp.$3);//日
var cf=` 李2021-10-13 肖2021-10-18 ` var szg=cf.match(/(\d{4})-(\d{2})-(\d{2})/g); console.log(szg);