正则表达式

正则表达式是对字符串执行模式匹配的强大工具

有两种语法:

1、直接量的语法

/pattern/attributes/正则/正则属性),例子:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript">
    var str="302";
    var re=/^[012]/;

    alert(re.test(str));
    </script>
</head>
<body>
</body>
</html>

 

2、RegExp 对象的语法:

new RegExp(pattern, attributes);

pattern里面为一个字符串,代表的就是正则;attributes为可选字符串,包含属性"g""i" 和 "m"

分别用于指定全局匹配、区分大小写的匹配和多行匹配

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript">
    var str="302";
    var re=/^[012]/;

    var pattern2 = new RegExp("^[012]");
    alert(pattern2.test(str));
    </script>
</head>
<body>
    
</body>
</html>

元字符

.   :查找单个字符,除了换行和行结束符。

w:查找单词字符。

d:查找数字。

s:查找空白字符。

:匹配单词边界

:查找换行符

u:匹配汉字

n$:匹配任何结尾为 的字符串。

^n:匹配任何开头为 的字符串。

 

[abc]   :查找方括号之间的任何字符。

[^abc]:查找任何不在方括号之间的字符。

[0-9]:查找任何从 至 的数字。

[a-z]:查找任何从小写 到小写 的字符。

[A-z]:查找任何从大写 到小写 的字符。

 

search:检索与正则表达式相匹配的值。

match:找到一个或多个正则表达式的匹配。基本需要配合g,返回一个数值

replace:替换与正则表达式匹配的子串。

test:检查正则表达式是否与字符串匹配,是返回true;否则,返回false

 

n+  :匹配任何包含至少一个 的字符串。

n*:匹配任何包含零个或多个 的字符串。

n?:匹配任何包含零个或一个 的字符串。

n{X}:匹配包含 个 的序列的字符串。

n{X,Y}:匹配包含 或 个 的序列的字符串。

 

匹配汉字

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
window.onload=function (){

    var oTxt=document.getElementById("txt1");

    oTxt.onkeyup=function (){

        var oTxtValue=oTxt.value;
        //9fa5最大字符
        //4e00最小中文字符
        var str="er撒的范德萨ere的发生大3242d的范德萨";
        var re=/[u4e00-u9fa5]+/g;

        oTxt.value=str.replace(re,"");

    }
}
</script>
</head>
<body>
<input type="text" id="txt1">
</body>
</html>

去掉字符串开头和结尾的空格

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
var str=" dsfsd 1232 fsdfds dsfds ";

alert("("+str.replace(/^s+|s+$/g,"")+")");
</script>
</head>
<body>

</body>
</html>

过滤标签

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Document</title>
 6 <script type="text/javascript">
 7 window.onload=function (){
 8 
 9     var oTxt1=document.getElementById("text1");
10     var oTxt2=document.getElementById("text2");
11     var oBtn=document.getElementById("btn1");
12 
13 
14     oBtn.onclick=function (){
15 
16         var oTxtValue=oTxt1.value;
17         //<br> <a href="###">  </a>
18         var re=/<[^<>]+>/g;
19 
20         oTxt2.value=oTxtValue.replace(re,function (s){
21             
22             //<br> <BR> <br /> <br/>
23             var re=/<brs*/?>/i;
24 
25             if (re.test(s)){
26                 return "
";
27             }else{
28                 return "";
29             }
30         });
31     }
32 }
33 </script>
34 </head>
35 <body>
36 <textarea id="text1" rows="10" cols="80"></textarea><br/>
37 <input type="button" value="过滤" id="btn1"/><br/>
38 <textarea id="text2" rows="10" cols="80"></textarea>
39 </body>
40 </html>

匹配邮箱

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6     <script type="text/javascript">
 7     //641418330@qq.com   tangcaiye@gmail.com
 8     //tangxiangrong@bokanedu.com
 9     //tangxiangrong@163.com
10     //tangxiangrong@163.com.org.xx.aa
11 
12     //数字、字母、_  @  数字、小写字母{2,8} (.小写字母){1,4} 
13 
14     //^w+@[0-9a-z]{2,8}(.[a-z]{2,4}){1,4}$
15 
16     
17 
18 
19 
20     window.onload=function (){
21 
22         var oTxt=document.getElementById("txt1");
23         var oBtn=document.getElementById("btn1");
24 
25         oBtn.onclick=function (){
26 
27             var oTxtVlaue=oTxt.value;
28             var re=/^w+@[0-9a-z]{2,8}(.[a-z]{2,4}){1,4}$/;
29 
30             if (re.test(oTxtVlaue)){
31                 alert("正确");
32             }else{
33                 alert("错误");
34             }
35         }
36     }
37 
38     </script>
39 </head>
40 <body>
41     <input type="text" id="txt1">
42     <input type="button" value="验证" id="btn1">
43 </body>
44 </html>

 

 

原文地址:https://www.cnblogs.com/night2013/p/3584704.html