正则表达式

 

正则表达式是由普通字符以及特殊字符组成的文字模式

构造正则表达式可以通过一对斜杠(/)分隔符之间放入由普通字符和特殊字符组成的文字模式来构造一个正则表达式。

      

   正则表达式一般的格式:

             /pattern/flags 

1.pattern  指定匹配模式的正则表达式

Flags是零个或多个可选项,有效选项及意义为:

I        忽略大小写。

G       全局匹配,即匹配字符串中出现的所有模式

M       进行多行匹配

 

 

1.特殊字符。

  要匹配特殊字符,必须首先将这些字符按转义。就是在其面前加上一个反斜杠(\) .

 

 \f       匹配一个换页符

\n       匹配一个换行符

 \r      匹配一个回车符

\t       匹配一个制表符

\v       匹配一个垂直制表符

 

2. 字符类

[.....]         匹配位于括号之内的任意字符

[^....]        匹配不在括号之中的任意字符

.            匹配除换行之外的任意字符,等价与[^\n]

\w           匹配任何单字符 等价于[a-zA-Z0-9]

\W           匹配任何非单字符  等价于[^a-zA-Z0-9]

\s            匹配任何空白字符

\S            匹配任何非空白字符

\d             匹配任何单个数字

\D            匹配除了数字之外的任何单个数字

[\b]           匹配一个退格直接量

 

3.表示重复的字符

 

{ n }           匹配前一项

{ n, }        匹配前一项次,或更多次

{ nm }       匹配前一项m

?          零次或一次  等价于{0,1}

*          零次或多次,等价于{1} . 匹配*字符,使用 \*

+          一次或多次 ,等价于{0,1} . 匹配+字符,使用 \+

 

4.其他特殊字符

   \        将下一个字符标记为或特殊字符、或原义字符按、或后向引用、或八进制转义符。  比如  ‘n’匹配字符’n’   ‘\n’匹配换行符。序列’\\’匹配”\” ,’\(’则匹配”(”

 

 |     指明两项之间的一个选择   匹配|字符,使用 \|

 

 $   匹配输入字符串的结尾位置。匹配$字符,使用 \$

 

^     匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。  匹配^字符,使用 \^

\b    匹配的是一个词语的边界,即位于字符\w\W之间的位置

 

\B    匹配的是非词语边界的字符 

 

 如下例子: 主要通过正则表达式,检测用户密码的强度

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>regex test</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
   <script language="javascript">
    var id,pause=0,position=0;
	function qiangdu(str){
	  var ls=0;
      if(str.match(/[a-z]/ig)){
	      ls++;
	  }
      if(str.match(/[0-9]/ig)){
	     ls++;
	  }
	  if(str.match(/[^a-z0-9]/ig)){
	    ls++;
	  }
      if(str.length< 6 && ls>0){
	    ls--;
	  }	  
	  return ls;
	}
	function pwStrength(pwd){
	 O_color="#eeeeee";
	 L_color="#ff0000";
	 M_color="#ff9900";
	 H_color="#33cc00";
	 if(pwd ==null|| pwd==""){
	  Lcolor=Mcolor=Hcolor=O_color;
	 }else{
	  S_level=qiangdu(pwd) ;
	  switch(S_level){
	   case 0:
	      Lcolor=Mcolor=Hcolor=O_color;
	      break;
	   case 1 :
          Lcolor=L_color;
          Mcolor=Hcolor=O_color;
          break;
       case 2 :
	      Lcolor=Mcolor=M_color;
		  Hcolor=O_color;
		  break;
		default:
		  Lcolor=Mcolor=Hcolor=H_color;
		  break;
	  }
	 }
	  document.getElementById("L").style.background=Lcolor;
	  document.getElementById("M").style.background=Mcolor;
	  document.getElementById("H").style.background=Hcolor;
	}
   </script>
  </head>
  
  <body>
  <form method="post" name="iform">
  <input type="password" size="48" οnchange="pwStrength(this.value)"></input>
  <br>
  <table width="217" border="1" >
    <tr>
	  <td  width="30%" id="L">弱</td>
	  <td  width="30%" id="M">中</td>
	  <td  width="30%" id="H">强</td>
	</tr>
  </table>
  </form>
    This is my HTML page. <br>
  </body>
</html>



 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值