正则表达式:
通常用来检查、替换那些符合某个模式或者规则的文本。
*专门用来操作文本(字符串)
语法:
1.new RegExp(pattern, attributes);
2./pattern/attributes
作用:
对字符串进行检索、匹配/替换
模板:
通过regex.test方法测试目标字符串是否和模板是否匹配
属性:
i:执行对大小写不敏感匹配
g:执行全局匹配(找到所有匹配而不是第一个匹配就停止)
m:执行多行匹配
规则:
^:匹配的字符串一定要和模板开头
$:匹配的字符串要以模板结尾
[]:匹配数字
{s,e}:如果是一个数字,代表出现的次数。如果是两个数字,代表s至e位。
简写:
\w:[0-9a-zA-Z_]
\d:[0-9] //匹配数字
*如果是相匹配正则的关键字,记得前面加上转义符(\
前面都是我总结的知识点,接下来通过实例来进行更透彻的理解正则表达式。
一般用正则表达式匹配,接下来以匹配邮箱为例子 。
首先原匹配的字符是(可以理解为模板)
被用来匹配的是
var regex = /^[email protected]$/i;
var target = "[email protected]";
console.log(regex.test(target));
测试结果:false
原因:原匹配字符是要以 ^ 开头 ,被匹配的是111 那结果当然是false咯
由固定的邮箱地址转到一般的邮箱地址为:
对了,这个时候需要说一下两个测试关键字的区别:
test的作用仅仅用来测试字符串是否匹配正则模板
exec(执行)的作用是执行正则的解析和查询,解析查询完之后,会将分组的匹配结果分别复制给RegExp这个对象的$n的属性
var email = "[email protected]";
var emailRegex = /^(\w+)@(\w+)\.com(\.cn)?$/i;
if(emailRegex.exec(email)){
console.log("邮箱地址合法...");
console.log("公司"+RegExp.$2+"员工:"+RegExp.$1);
}
使用 exec 关键字的执行结果:
使用 test 关键字:
var regex = /^(sss)|(ddd)|(ccc)$/ig;
var str = "sss";
if(regex.test(str)){
alert("匹配");
}
测试结果是: 匹配
这个案例中的第一行
有无括号或者括号的个数 执行结果上有区别 ,这里就不赘述了。
预祝你们都有一个愉快的学习过程。