正则表达式
正则表达式主要用在字符串格式匹配方面
正则表达式实际上是一门独立的学科,在java、c、JavaScript中都支持
1.常见的正则表达式符号
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
2.简单的正则表达式(正则表达式中的小括号()优先级较高)
1)QQ的正则表达式:^[1-9][0-9]{4,}$
2)Email正则表达式:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
3.创建正则表达式对象,调用正则表达式对象
第一种创建方式:
var regExp=/正则表达式/flags;
第二种创建方式:
var regExp=new RegExp("正则表达式","flags");
补:1)关于flags
g 全局匹配
i 忽略大小写
m 多行搜索(ES规范指定后才支持m) 当前面是正则表达式时,m不能用
只有当前面是普通字符串时,m才能使用
2)正则表达式对象的test()方法
true/false=正则表达式对象.test(用户填写的字符串)
true:字符串格式匹配成功
false:字符串格式匹配失败
4.邮箱验证
<body>
<input type="text" id="email"/>
<br>
<span id="emailResult" style="color: red;font-size: 12px;"></span>
<input type="button" id="btn" value="验证邮箱"/>
<script type="text/javascript">
window.onload=function(){
//给按钮绑定onclick
document.getElementById("btn").onclick=function(){
var email=document.getElementById("email").value;
var emailRegExp=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
var result=emailRegExp.test(email);
if(!result){
document.getElementById("emailResult").innerText="邮箱地址不合法";
}
else{
document.getElementById("emailResult").innerText="邮箱验证成功"
}
}
//给文本框email绑定focus
document.getElementById("email").onfocus=function(){
document.getElementById("emailResult").innerText="";
}
}
</script>
</body>