正则表达式详解

(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]);
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值