正则表达式

2009年5月7日星期四

正则表达式

今天学习了一下正则表达式,嗯,很强大。幸亏开过编译原理的课,否则真是有点不好学。
我是看这篇文章学的:http://www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htmng(正则表达式30分钟入门教程)。我非常推荐这篇文章。
最简单的测试当然是用js了,不需要任何工具,windows自带的记事本就可以解决问题。
js有个RegExp类,它有个方法是exec,用这个方法来执行你你写的正则表达式。当然可以用来测试正则表达式的正确性了。
至于这个类和这个函数呢,在这里有说明:

下面是我测试时,用正则表达式判断的几个字符串:
scriptlanguage=javascript
//设置焦点到文本框
setTimeout(function(){document.getElementById(test).focus();},0);

//测试qq,格式:【5~12个数字,但第一位不能是0】
functiontestQQ(s)
{
varpatrn=/^[1-9]\d{4,11}$/;
if(!patrn.exec(s))
{
alert(notqq);
returnfalse;
}
alert(qq);
returntrue;
}
//测试IP,格式:【0~255.0~255.0~255.0~255】
functiontestIP(s)
{
varpatrn=/^(([01]?\d{2}|2[0-4]\d|25[0-5])\.){3}([01]?\d{2}|2[0-4]\d|25[0-5])$/;
if(!patrn.exec(s))
{
alert(notIP);
returnfalse;
}
alert(IP);
returntrue;
}
//测试用户名,格式:【若干个英文字母或数字或下划线,但必须以英文字母打头】
functiontestName(s)
{
varpatrn=/^[a-zA-Z][a-zA-Z\d_]*$/;
if(!patrn.exec(s))
{
alert(notName);
returnfalse;
}
alert(Name);
returntrue;
}
//测试Email,格式:【若干个英文字母或数字或下划线,但必须以英文字母打头@若干个英文字母或数字.若干个英文字母】
functiontestEmail(s)
{
varpatrn=/^[a-zA-Z]{1}[a-zA-Z0-9_]*@[a-zA-Z0-9]+\.[a-zA-Z]+$/;
if(!patrn.exec(s))
{
alert(notEmail);
returnfalse;
}
alert(Email);
returntrue;
}
/script
formname=form
inputtype=textid=testname=test/
inputtype=submitonclick=testName(test.value);returnvalue=测试/
/form

0 评论:

发表评论