在js中使用正则表达式

来源:互联网 发布:都都宝app软件 编辑:程序博客网 时间:2024/05/17 20:24

  一个正则表达式是由普通字符(如a~z)以及特殊字符(称为元字符)组成的模式字符串。该模式字符串描述在查找文字主体时待匹配的一个和多个字符串。

  1、字符类

  [.......]  匹配方括号中字符序列的任意一个字符。其中可以使用连字符“-”匹配指定范围内的任意字符。/[025]/(//分别是字符串的开头与结尾)可以与0a2b3c中的0或2或5匹配(记住只能匹配一个) /0-5/可以匹配0到5间的任意一个数。

  [^...]匹配不是方框中任意一个字符。/[^0-5]/匹配不是0-5间的一个任意数。

  \d 匹配任意一个数字,相当与[0-9]  /\d/可以匹配 5a中的5 

  \D匹配任意非数字字符

  \s匹配任意空白字符(如空格,换行符等)

  \S匹配任意非空白字符

 \w匹配任何英文字母,数字以及下划线

 2、量词

 ? 匹配前一项0次或者1次   

  +匹配前一项的1次或者多次,但至少出现一次

  *匹配前一项的0次或者多次,也就是任一次

  {n} 匹配前一项恰好n次,其中n为非负整数

  {n,}匹配前一项至少n次

  {n,m}匹配前一项至少n次,但不能超过m次

  注意:在使用n和m时,中途不能出现空格

  3.指定位置

  ^ 匹配字符串的行开头 ,^必须出现在指定字符串的最前面才起作用

  $ 匹配字符串的行末尾 ,$必须出现在指定字符串的最后面才起作用

  \b 匹配单词的边界

  \B匹配单词的非边界

  4.使用选择匹配符

  |或者

  5.分组

  ()将括号中的字符串分离成单独的单元

  6.在js中创建RegExp(正则表达式)对象

  变量值  i:忽略大小写

               m:多行标志

               g:全局标志

  var objexp = /\d/g;

  使用test()方法,用于对一个指定的字符串进行匹配,如果搜到就返回true,否则就返回false

  objexp.test(str)

  使用exec()方法,返回匹配到的数组,没有匹配到则返回空。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>使用正则表达式判断邮箱的正确性</title>
<script type="text/javascript">
function check(){
var emailcontent = email.text.value;
document.write(emailcontent);
var objexg = /^\w+(_\w+)*@\w+\.\w+(_\w+)*$/;
if(objexg.test(emailcontent)==true){
alert("邮箱正确");
}else{
alert("邮箱格式不正确,请重新输入");
emailcontent==null;}

};
window.onload = function(){
var button = document.getElementById("but");
button.addEventListener("click",function(){
check();
},false);
};
</script>
</head>


<body>
<table cellpadding="5" cellspacing="0" border="1" bgcolor="#00FF66">
<tr>
<td>
    请输入你的邮箱:
    </td>
    <td>
    <form action="" id="email" name="email">
        <input type="text" maxlength="20"  name="text"/>
        </form>
    </td>
</tr>
<tr>
<td>
    <input align="center" type="button" id="but" name="but" value="检测"  />
    </td> 
</tr>
</table>
</body>
</html>



 

  

  



0 0