(1)Javascript正则表达式:就是一种规则,来规定数据是否符合某种规则。
特点:
正则可以将网页上我们需要的数据给筛选出来
正则表达式是一门语言,不依赖于任何其他的语言,而是其他语言如何去支持正则
(2)Javascript操作正则
是通过RegExp这个对象来实现的
格式:
1.new RegExp(正则表达式,模式修正符)
2./正则表达式/模式修正符
检测方法:
Test() 返回布尔类型的值
Exec() 如果有匹配值返回匹配到的值,否则返回null
(3)表示一个字符
直接写这个字符后者一个范围中的一个字符
(4)[ ]表示一个范围
在[ ]中 ^ 表示 非;
[a-z] 表示小写字母
[A-Z] 大写字母
[0-9] 表示所有的数字
[za] z 或 a
(5)特殊字符
中括号外面 ^ 代表某个字符开始
| 代表或
. 表示任意字符,但是不包括换行符(\n)
\ 转义字符,将后面字符原样输出
$ 代表以某个字符结束
(6)常用的转义字符来表示 某个字符
\w 所有的字母数字下划线 相当于 [a-zA-Z0-9_]
\W 除了字母数字下划线
\d 所有的数字
\D 所有的字符除了 数字
\s 空格
\S 所有字符,但是除了空格
\b 字符边界(boundary)
\D 所有的字符,但是除了字符边界
(7)Unicode编码表示汉字
javascript内置的编码就是 unicode,[\u4e00-\u9fa5]
需要注意:参数要求是16进制
(8)表示字符数量
{}表示是数量范围
{最小数量,最大数量}
* 任意次
+ 表示最少1次(1次或多次)
? 0 次或1次
(9)分组的使用
在正则表达式中,通过()将表达式分成若干部分,在通过RegExp对象的exec将匹配的结果以数组的形式返回
下标为0 返回的是 整个正则表达式匹配的结果
下标为1 返回的是第一个分组匹配的结果,依次下去
模式修正符
i ignoreCase 忽略大小写
g global 全局匹配
m multiline 多行匹配
正则默认情况为单行模式,一个字符串就是一行,即使换行符(\n),也会当作一行来执行,单行模式
(10)利用字符串处理正则表达式
Match() 将正则匹配的结果输出
Replace() 根据正则匹配的结果,进行字符串替换
Split() 字符串拆分,根据分隔符将字符串进行拆分
(11)
<html>
<head>
<title> 邮箱表单验证 </title>
<script type="text/javascript">
function userName(){
var reg =/[\u4e00-\u9fa5]{2,4}/g;
var str =document.getElementById('a').value;
if(reg.test(str)){
document.getElementById('spana').innerHTML="<font color='green'>输入正确请继续</font>"
}
else{
document.getElementById('spana').innerHTML="<font color='red'>输入错误请重新输入</font>"
}
}
function password(){
var reg =/^[a-zA-Z]\w{5,17}$/g;
var str =document.getElementById('password').value;
if(reg.test(str)){
document.getElementById('pass').innerHTML="<font color='green'>输入正确请继续</font>"
}
else{
document.getElementById('pass').innerHTML="<font color='red'>输入错误请重新输入</font>"
}
}
function qq(){
var reg =/[1-9]\d{3,11}/g;
var str =document.getElementById('b').value;
if(reg.test(str)){
document.getElementById('spanb').innerHTML="<font color='green'>输入正确请继续</font>"
}
else{
document.getElementById('spanb').innerHTML="<font color='red'>输入错误请重新输入</font>"
}
}
function pho(){
var reg =/^1(3|5|8)\d{9}/g;
var str =document.getElementById('c').value;
if(reg.test(str)){
document.getElementById('spanc').innerHTML="<font color='green'>输入正确请继续</font>"
}
else{
document.getElementById('spanc').innerHTML="<font color='red'>输入错误请重新输入</font>"
}
}
function emil(){
var reg =/\w+@\w+\.(com|cn|net|gov|org|tv)/g;
var str =document.getElementById('d').value;
if(reg.test(str)){
document.getElementById('spand').innerHTML="<font color='green'>输入正确请继续</font>"
}
else{
document.getElementById('spand').innerHTML="<font color='red'>输入错误请重新输入</font>"
}
}
function zhenghao(){
var reg =/\d{15}|\d{18}/g;
var str =document.getElementById('e').value;
if(reg.test(str)){
document.getElementById('spane').innerHTML="<font color='green'>输入正确请继续</font>"
}
else{
document.getElementById('spane').innerHTML="<font color='red'>输入错误请重新输入</font>"
}
}
</script>
</head>
<body>
<table width="500px" border="1px">
<tr>
<td width="100px">用户名</td>
<td><input type="text" id="a" οnblur="userName()"/><span id="spana"></span></td>
</tr>
<tr>
<td>密码</td>
<td><input type="text" id="password" οnblur="password()"/><span id="pass"></span></td>
</tr>
<tr>
<tr>
<td>QQ号</td>
<td><input type="text" id="b" οnblur="qq()"/><span id="spanb"></span></td>
</tr>
<tr>
<td>手机号</td>
<td><input type="text" id="c" οnblur="pho()"/><span id="spanc"></span></td>
</tr>
<tr>
<td>邮箱</td>
<td><input type="text" id="d" οnblur="emil()"/><span id="spand"></span></td>
</tr>
<tr>
<td>身份证号</td>
<td><input type="text" id="e" οnblur="zhenghao()"/><span id="spane"></span></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="button" value="免费注册"></td>
</tr>
</table>
</body>
</html>
(12)匹配title的内容
var reg =/<a\shref="(\w{4}:\/{2}\w{3}\.\w{4}\.\w{2,})"\stitle="([\u4e00-\u9fa5]{6})">欢</a>/;
//\s表示空格
var str =<a href="http://www.hbsi.com" title="欢迎回到学校">欢</a>";
var arr =reg.exec(str);
alert(arr[2]);