正则表达式公式。

一、首先了解传统的验证方式

    1、非空验证
    if(emall==""){
        alert("Emall 不能为空")
        return false
    }
    
    2、查找字符串首次出现的位置

    var str = "this  is  JavaScript"
    var selectFirst = str.indexOf("Java");
    console.log(selectFirst);
    返回值为 8

    3、根据字符串的特殊符号来查找
    form.function(){
    var mail=email.value;
    if(mail==""){
        alert("Email不能为空");
        return false;
    }
    if (mail.indexOf("@") == -1) {
        alert("Email格式不正确\n必须包含@");
        return false;
    }
    if (mail.indexOf(".") == -1) {
        alert("Email格式不正确\n必须包含.");
        return false;
    }
    return true;
    }
    
    4、验证字符串的长度

    if(pwd.length<6){
        alert("密码必须等于或者大于6个字符")
        return false
    }

    5、判断字符串是否有数字
       使用for循环和substring()方法依次截断单个字符,再判断每个字符是否是数字

    for (var i = 0; i < user.length; i++) {
        var j = user.substring(i, i + 1);
         if (isNaN(j) == false) {
             alert("姓名中不能包含数字");
             return false;
        }
    }
   

二、 正则
    为什么需要正则

    1、简洁的代码
    2、严谨的验证输入的内容


    var reg= /^\w+@\w+(\.[a-zA-Z]{2,3}){1,2}$/;
    if(reg.test(email) ==false){    
    $email_prompt.html("电子邮件格式不正确,请重新输入");
    return false;
    }


三、正则表达式的语法

    构造函数:var reg=new RegExp(pattern,modifiers);

    字面量:var reg=/pattern/modifiers;

    / /  相当于正则的开始和结束

    常用的表达式

    [a-z]   查找任何从小写 a 到小写 z 的字符
    [A-Z]   查找任何从大写 A 到大写 Z 的字符
    [0-9]   查找任何从 0 至 9 的数字
    [abc]   查找括号内的任意一个字符
    [^abc]  查找除了括号内的任意字符

    常用的元素符

    \w  匹配数字、字母、下划线
    \W  匹配非数字、字母、下划线
    \d  匹配数字
    \D  匹配非数字
    \s  匹配空白字符(空格、换行)
    \S  匹配非空白字符
    \n  匹配换行符
    ^   匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a" 
    $   匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A" 

    常用的限定符

    *   匹配前面的子表达式零次或多次
    +   匹配前面的子表达式一次或多次
    ?   匹配前面的子表达式零次或一次
    {n} 匹配确定的 n 次
    {n,}    至少匹配n 次
    {n,m}   最少匹配 n 次且最多匹配 m 次

    3、正则表达式方法

    检测一个字符串是否与正则相匹配
    reg.test(string)
    reg.exec(string)

    var str="abc";
    var reg=/[a-z]/;   var reg=/[A-Z]/;
    console.log(reg.test(str));  
    console.log(reg.exec(str));


    4、正则表达式的方法

    /*search()方法-使用正则表达式来检索字符串中的kgc*/
    var str="hello kgc";
    console.log(str.search(/kgc/));  console.log(str.search(/KGC/));  
    console.log(str.search(/KGC/i)); 

    /*match()方法-使用正则表达式来检索字符串中的所有数字*/
    var str="1 and 2 and 3";
    console.log(str.match(/\d/));
    console.log(str.match(/kgc/));
    console.log(str.match(/\d/g));

    /*replace()方法-使用 "kgc" 替换字符串中的 "huyang"*/
    var str="hello huyang";
    console.log(str.replace(/huyang/,"kgc"));
    var str="hello huyang, How are you?huyang";
    console.log(str.replace(/huyang/g,"kgc"));

    /*split()方法-把单词分割为字母*/
    console.log("hello".split(""));
    console.log("hello".split("",3));

三、 验证实例
    /*验证26个英文字母组成的字符串*/
    var str="sgfhdfGIYYjhj";
    var reg=/^[a-zA-Z]+$/;   //一次或多次 "+"
    console.log(reg.test(str));
    /*验证由数字和26个英文字母组成的字符串*/
    var str="abc123DFjh";
    var reg=/^[0-9a-zA-Z]+$/;
    console.log(reg.test(str));
    /*验证由数字、字母、下划线组成的字符串*/
    var str="abc_123_DFjh";
    var reg=/^\w+$/;
    console.log(reg.test(str));
    /*验证汉字*/
    var str="课工场";
    var reg=/^[\u4e00-\u9fa5]+$/
    console.log(reg.test(str));

例子:
    如何将字符串中的数字加上方括号
        var str='abc345efg';
        var reg1 = /\d/g;
        var arr = str.split('');
        for(var i=0;i<arr.length;i++)
        {
            if(isNaN(arr[i])==false)
            {
                arr[i] = '['+arr[i]+']';
            }
        }
        str2 = arr.join('');
        alert(str2);
四、

    常用的验证方式
    1、验证邮箱:/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/

    2、验证手机号码:/^1[34578][0-9]{9}$/

    3、清空所有空格 :/\s+/g

    4、验证身份证:/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/

    5、验证真实姓名:/^[\u4e00-\u9fa5]{2,4}$/;

    6、用户名正则,4到16位(字母,数字,下划线,减号): /^[a-zA-Z0-9_-]{4,16}$/;  

    7、密码强度正则:
    /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/  

    8、正整数正则:/^\d+$/;

    9、负整数正则:/^-\d+$/;  

    10、整数正则: /^-?\d+$/; 

    11、数字正则:
        1、正数正则   /^\d*\.?\d+$/; 
        2、负数正则   /^-\d*\.?\d+$/; 
        3、数字正则  /^-?\d*\.?\d+$/;   
    12、 QQ号码正则: /^[1-9][0-9]{4,10}$/;  
    
    13、 微信号正则: /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;  

    14、车牌号正则: /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏
    川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/

    15、 包含中文正则: /[\u4E00-\u9FA5]/;    

    16、 验证昵称: /^[\u4E00-\u9FA5A-Za-z0-9_]+$/;    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值