RegExp正则表达式对象
RegExp正则表达式对象:
使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。
修饰符:
i 不区分大小写匹配
g 全文搜索
RegExp对象方法():
test(): 搜索字符串指定的值,根据结果并返回真或假
exec(): 检索字符串中的指定值,返回值是被找到的值。如果没有发现匹配,则返回null
test()方法:
例:查找str变量的值中是否有字符串“hello”:
var reg = new RegExp("hello"); //新建一个正则表达式对象
var str = "hello world!"; //定义一个变量,值为字符串
document.write(reg.test(str)); //查看str的值中是否包含有hello字符串
结果为:true,证明该字符串是含有字符串“hello”的
当然,创建正则表达式对象有简写的方法:
var reg = /hello/; //简写
var str = "hello world!";
document.write(reg.test(str));
i 不区分大小写匹配:
如果把hello,改成HELLO,就匹配不到hello了:
var reg = /HELLO/;
结果为:false。 因为匹配的时候是区分大小写的,要想不区分,使用“ i ”就可以。
var reg = /HELLO/i;
结果为:true
g 全文搜索:搜索全文,而不是找到第一个就停止、
要想全局搜索,使用g就可以,既想全文搜索,又想不区分大小写,写ig或者gi都可以,无关顺序
var reg = /HELLO/ig;
更多的还有:就不 一一列举了!
我们将在下一篇讲具体应用:(文章结尾点击下一篇链接)
把正则表达式应用到实际案例:
1.判断用户名是否可用:
HTML代码:
<span>请输入用户名:</span>
<input type="text" id="username"> //该文本框用于输入用户名
<button type="button" onclick="test()">提交</button> //提交按钮
<span id="warning"></span> //提示语
JavaScript代码:
function test(){
var user = document.getElementById("username").value; //获取用户输入的用户名
var regexp = /^[a-zA-Z0-9_]{4,20}$/; //创建正则表达式对象
if(regexp.test(user)){ //判断用户名是否合法
document.getElementById("warning").innerHTML='您的用户名可用';
}else{
document.getElementById("warning").innerHTML='您的用户非法,请输入4-20位,字母 数字或者下划线';
}
}
2.判断密码是否可用:
HTML代码:
<span>请输入密码: </span>
<input type="text" id="pwd"> //该文本框用于输入密码
<button type="button" onclick="passwd()">提交</button> //提交按钮
<span id="warning_pwd"></span> //提示语
JavaScript代码:
function passwd(){
var pwd = document.getElementById('pwd').value; //获取用户输入的密码
var regexp2 = /^[a-zA-Z0-9_]{6,20}$/; //创建正则表达式对象
if(regexp2.test(pwd)){ //判断该密码的合法性
document.getElementById('warning_pwd').innerHTML="该密码可用";
}else{
document.getElementById('warning_pwd').innerHTML="该密码不合法,请输入6-20位数字,下划线,字母"
}
}
3.判断邮箱是否可用:
HTML代码:
<span>请输入邮箱:</span>
<input type="text" id="mail"> //该文本框用于输入密码
<button type="button" onclick="mail()">提交</button> //提交按钮
<span id="warning_mail"></span> //提示语
</body>
JavaScript代码:
function mail(){
var email = document.getElementById('mail').value; //获取用户输入的邮箱
//创建正则表达式对象
var regexp3 = /^([0-9A-Za-z\-_\.]+)@([0-9a-z]+\.[a-z]{2,3}(\.[a-z]{2})?)$/;
if(regexp3.test(email)){ //判断是否合法
document.getElementById('warning_mail').innerHTML='该邮箱可用';
}else{
document.getElementById('warning_mail').innerHTML='该邮箱不合法,请重新输入'
}
}
今天的实战就到这里啦,还有很多很多,可以自己慢慢去练习!!