JS正则表达式

2018-03-21  本文已影响0人  db366da20578

match:把所有匹配的东西,全部提取出来。
i表示:ignore(忽略大小写)
\d: 转义字符,匹配一个数字 = [0-9]
\D:除了[0-9]以外 [^0-9]
\w 英文,数字,下划线,包括[a-z0-9_]
\W [^a-z0-9_]
\s 空白字符
\S ^空
g: global(找到全部)
+:量词,若干个,匹配一串数字(把分开的连在一起,空格可以隔开)

var str="dsf 12 34 dsf23";
var re=/\d+/g; // \d是匹配一个数字,+是匹配一串数字,g找到所有。
alert(str.match(re)); //match()把所有匹配的东西全部提取出来
//12,34,23
replace:替换,配合正则使用

html

<textarea id="text1" rows="5" cols="30"></textarea><br />
<input id="btn1" type="button" value="过滤"/><br />
<textarea id="text2" rows="5" cols="30"></textarea><br />

js

window.onload=function(){
    var oTxt1=document.getElementById('text1');
    var oTxt2=document.getElementById('text2');
    var oBtn=document.getElementById('btn1');
    
    
    oBtn.onclick=function(){
        var re=/北京|上海|深圳/g;  //|代表或的意思
        oTxt2.value=oTxt1.value.replace(re,'***');  
        //如果没有写g,replace就只替换一个,而不是多个,这就是配合正则用的好处
    };
};
image.png

任意字符:[abc]
例:o[usb]t-----obt、ost、out
.(点)---任意字符(转义字符)

//把html替换成空
window.onload=function(){
    var oTxt1=document.getElementById('text1');
    var oTxt2=document.getElementById('text2');
    var oBtn=document.getElementById('btn1');
    
    
    oBtn.onclick=function(){
        var re=/<[^<>]+>/g;  //除了<>外的任意字符
        oTxt2.value=oTxt1.value.replace(re,'');
    };
};
image.png
{n}   正好出现n次
例:18059006453
[1-9]\d{10}  //第一位是从1-9,{10}表示后面还有10位数

{n,m} 最少n次,最多m次
例:QQ号,最少4位,最多10位
[1-9]\d{4,10}

{n,} 最少n次,最多不限

+  {n,}  最少出现一次,最多不限

? 最少0次,最多1次(可有可无),?号写在后面
010-87089891-23917   //010是区号,23917分机号
(0\d{2,3}-)?[1-9]\d{7}(-\d{1,5})?    //?前面的可有可无

* 任意次数{0,},基本不用
^非的意思和行首(字符串开头)
$ 行尾(字符串结尾)

re.test():这个方法是检验是否符合正则的规则,这个方法说的是字符串一部分符合要求返回的就是true。
^ 行首(字符串开头)
$ 行尾(字符串结尾)

效验邮箱
邮箱:<input id="text1" type="text"><br>
<input id="btn1" type="button" value="效验邮箱">
window.onload=function(){
    var oEmail=document.getElementById('text1');
    var oBtn=document.getElementById('btn1');
    
    oBtn.onclick=function(){
        var re=/^\w+@[a-z0-9]+\.[a-z0-9]+$/i;
        if(re.test(oEmail.value)){
            alert("合法邮箱");
        }else{
            alert("您输入有误");
        }
    };
};
上一篇下一篇

猜你喜欢

热点阅读