1.正则表达式
正则表达式是描述字符模式的对象。正则表达式用于对字符串模式匹配及检索替换,是对字符串
执行模式匹配的强大工具。
语法:varpatt=newRegExp(pattern,modifiers); //或者更简单的方式: varpatt=/pattern/modifiers;
修饰符:
方括号:
元字符:
量词:
RegExp对象方法:
支持正则的String的方法:
2 常用正则表达式
2.1 验证
// 创建一个最简单的正则表达式对象
var reg=/o/;
// 创建一个字符串对象作为目标字符串
var str='Hello World!';
// 调用正则表达式对象的test()方法验证目标字符串
//是否满足我们指定的这个模式,返回结果true
console.log("/o/.test('Hello World!')="+reg.test(str));
2.2 匹配
// 创建一个最简单的正则表达式对象
varreg=/o/;
// 创建一个字符串对象作为目标字符串
varstr='Hello World!';
// 在目标字符串中查找匹配的字符,返回匹配结果组成的数组
varresultArr=str.match(reg);
// 数组长度为1
console.log("resultArr.length="+resultArr.length);
// 数组内容是o
console.log("resultArr[0]="+resultArr[0]);
2.3 替换
// 创建一个最简单的正则表达式对象
varreg=/o/;
// 创建一个字符串对象作为目标字符串
varstr='Hello World!';
varnewStr=str.replace(reg,'@');
// 只有第一个o被替换了,说明我们这个正则表达式只能匹配第一个满足的字符串
console.log("str.replace(reg)="+newStr);//Hell@ World!
// 原字符串并没有变化,只是返回了一个新字符串
console.log("str="+str);//str=Hello World!
2.4 全文查找
// 目标字符串
vartargetStr='Hello World!';
// 没有使用全局匹配的正则表达式
varreg=/[A-Z]/;
// 获取全部匹配
varresultArr=targetStr.match(reg);
// 数组长度为1
console.log("resultArr.length="+resultArr.length);
// 遍历数组,发现只能得到'H'
for(vari=0; i<resultArr.length; i++){
console.log("resultArr["+i+"]="+resultArr[i]);
}
对比:
// 目标字符串
vartargetStr='Hello World!';
// 使用了全局匹配的正则表达式
varreg=/[A-Z]/g;
// 获取全部匹配
varresultArr=targetStr.match(reg);
// 数组长度为2
console.log("resultArr.length="+resultArr.length);
// 遍历数组,发现可以获取到“H”和“W”
for(vari=0; i<resultArr.length; i++){
console.log("resultArr["+i+"]="+resultArr[i]);
}
2.5 忽略大小写
varreg=/o/gi;
2.6 元字符使用
varstr01='I love Java';
varstr02='Java love me';
// 匹配以Java开头
varreg=/^Java/g;
console.log('reg.test(str01)='+reg.test(str01)); // false
console.log("<br />");
console.log('reg.test(str02)='+reg.test(str02)); // true
varstr01='I love Java';
varstr02='Java love me';
// 匹配以Java结尾
varreg=/Java$/g;
console.log('reg.test(str01)='+reg.test(str01)); // true
console.log("<br />");
console.log('reg.test(str02)='+reg.test(str02)); // false
2.7 字符集合的使用
//n位数字的正则
vartargetStr="123456789";
varreg=/^[0-9]{0,}$/;
//或者: var reg=/^\d*$/;
varb=reg.test(targetStr);//true
//数字+字母+下划线,6-16位
vartargetStr="HelloWorld";
varreg=/^[a-z0-9A-Z_]{6,16}$/;
varb=reg.test(targetStr);//true
2.8 常用正则表达式
在后期的工作开发中我们用正则表达式直接在网上搜一下复制就行,所以我们不用记忆正则表达式