目录
简介
正则表达式是描述字符格式的对象。正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。
语法
var patt = new RegExp(pattern, modifiers);
// 抑或
var patt = /pattern/mmodifiers;
修饰符
正则表达式默认对大小写不做区分~
方括号
元字符
量词
RegExp 对象方法
支持正则表达式的 String 方法
正则表达式的使用示例
验证
// 创建一个最简单的正则表达式对象
var reg = /o/;
// 创建一个字符串对象作为目标字符串
var str = "hello world";
// 调用正则表达式对象的 test() 方法验证目标字符串是否满足我们指定的模式
var res = reg.test(str);
console.log(res);
匹配
// 创建一个最简单的正则表达式对象
var reg = /o/;
// 创建一个字符串作为目标字符串
var str = "hello world";
// 在目标字符串中查找匹配的字符,返回匹配结果组成的数组
var resStr = str.match(reg);
console.log(resStr);
替换
// 创建一个最简单的正则表达式
var reg = /o/;
// 创建一个字符串作为目标字符串
var str = "hello world";
var newStr = str.replace(reg,'@');
console.log(newStr); // 这里打印的结果是:hell@ world ==> 我们的正则表达式只能匹配第一个满足的字符~
// 可以在正则表达式后面加上一个全部匹配
var reg2 = /o/g;
var newStr2 = str.replace(reg2,'!');
console.log(newStr2); // 此时这里打印的结果就是:hell! w!rld
全文查找
// 目标字符串
var targetStr = "Hello World!";
// 没有使用全局匹配的正则表达式
var reg = /[A-Z]/;
// 匹配
var resultArr = targetStr.match(reg);
// 数组长度为 1
console.log(resultArr.length);
// 遍历数组,发现只能得到 H
for (var i = 0; i < resultArr.length; i++) {
console.log(resultArr[i]);
}
对比
// 目标字符串
var targetStr = "Hello World!";
// 使用全局匹配的正则表达式
var reg = /[A-Z]/g;
// 匹配
var resultArr = targetStr.match(reg);
// 数组长度为 2
console.log(resultArr.length);
// 遍历数组,发现能得到 H 和 W
for (var i = 0; i < resultArr.length; i++) {
console.log(resultArr[i]);
}
忽略大小写
// 目标字符串
var targetStr = "Hello WORLD!";
// 使用了忽略大小写且全文查找
var reg = /o/gi;
// 匹配
var resultArr = targetStr.match(reg);
// 数组长度为 2
console.log(resultArr.length);
// 遍历数组 得到 小写 o 和大写 O
for (var i = 0; i < resultArr.length; i++) {
console.log(resultArr[i]);
}
元字符的使用
var str01 = "I love Java";
var str02 = "Java love me";
// 匹配以 Java 开头
var reg1 = /^Java/g;
console.log(reg1.test(str01)); // false
console.log(reg1.test(str02)); // true
// 匹配以 Java 结尾
var reg2 = /Java$/g;
console.log(reg2.test(str01)); // true
console.log(reg2.test(str02)); // false
// 匹配是否为 Java
var reg3 = /^Java$/;
var str03 = "Java";
console.log(reg3.test(str01)); //false
console.log(reg3.test(str02)); //false
console.log(reg3.test(str03)); //true
字符集合的使用
// n 位数字的正则表达式
var targetStr = "123456789";
var reg =/^[0-9]{0,}$/;
// 或者 var reg = /^\d*$/;
var b = reg.test(targetStr); //true
// 数字 + 字母 + 下划线 6 - 16 位
var targetStr = "HelloWorld";
var reg = /^[a-z0-9A-Z_]{6,16}$/;
var b = reg.test(targetStr); //true