正则表达式是由普通字符以及特殊字符组成的文字模式
构造正则表达式可以通过一对斜杠(/)分隔符之间放入由普通字符和特殊字符组成的文字模式来构造一个正则表达式。
正则表达式一般的格式:
/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 次
{ n, } 匹配前一项n 次,或更多次
{ n,m } 匹配前一项n 至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>