正则表达式的相关操作和验证

1、JS正则表达式判断字符串是否包含中文字符

var file.name = "xxxxx哈哈哈.txt"
var resultNameqian = file.name.split('.')[0];
var reg = new RegExp("[\\u4E00-\\u9FFF]+","g");
if(reg.test(resultNameqian)){
    console.log('含有中文字符');
    alert("含有中文字符,不让上传")
}

2、总所周知,正则表达式主要用于字符串处理、表单验证等,简单的代码量实现复杂的功能

实际应用(g表示全局匹配)

去除字符串中的空格(正则匹配再去除)
\s* 表示若干个空格(可以是0个)。
\s+ 表示一个或多个空格.
var reg = /\s+/g;
var str = "22 55 66 88";
var ctr = str.replace(reg,",");
console.log(ctr);
打印结果:22;55;66;88

3、正则匹配特殊字符

var regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im;          //英文特殊字符
var regCn = /[·!#¥(——):;“”‘、,|《。》?、【】[\]]/im;  //中文特殊字符
if(regEn.test(newName) || regCn.test(newName)) {
    alert("名称不能包含中英文特殊字符.");
    return false;
}

4、正则匹配中文汉字

var reg = /[\u4e00-\u9fa5]/g;
var str = "中22 55国66 8梦8";
var ctr = str.replace(reg,"赞");
console.log(ctr);

输出结果:赞22 55赞66 8赞8

5、身份证号码的一个校验

A、先做一个简单的位数校验来判断身份证的合法性:(15位数字或18位数字或17位数字加X|x)

var reg=/(^\d{15}$)|(^\d{18}$)|(^\d{17}(^\d|X|x)$)/
if(reg.test(num) === false){
  alert("你输入的身份证不合法");
  return false;
}

B、18位=前六位地区+中八位出生日期+后4位顺序号(最后一个可以是数字或者X,x)

这我针对年份过滤(18xx-20xx),在对月份(01-12),日期(01-31)

其中正则表达式如下(我发现网上很多都是简单判断,日期和月份出现00都没有过滤掉):

var reg = /(^\d{6}((([1])([8|9]))|(([2])([0])))(\d{2})((([0])([1-9]))|(([1])([1-2])))((([0])([1-9]))|(([1-2])([0-9]))|(([3])([0-1])))(\d{3}(\d|X|x))$)/;
if(reg.test(num) === false){
    alert("你输入的身份证不合法");   
    return false; 
}

6、E-mail邮箱的校验

var emil=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/; 

在网页中插入邮箱输入框,当邮箱输入格式错误,给出提示。
    代码:
    function yy(){    
        var t  = /^[A-Za-zd0-9]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/;
        var y=document.getElementById("y");
        if(!(t.test(y.value)))
        {
            var txt=document.getElementById("txt_5");        
            txt.innerText="邮箱格式不正确!";
        }else{
            var txt=document.getElementById("txt_5");
            txt.innerText="";
        }
    }

<div class="anli">
        <li>
            <span>1、只能输入数字的输入框</span>
            <span>
                <input     type="text" 
                        name="" 
                        id="aa" 
                        value="" 
                        autocomplete="off"
                        οnkeyup="this.value=this.value.replace(/\D/g,'')"
                        onafterpaste="this.value=this.value.replace(/\D/g,'')"
                />
            </span>             <hr/>
        </li>
        <li>
            <span>2、只能输入数字【加字符限制】的输入框</span>
            <span>
                <input     type="text" 
                        name="" 
                        id="bb" 
                        value=""
                        maxlength="15"
                        autocomplete="off"
                        οnkeyup="this.value=this.value.replace(/\D/g,'')"
                        onafterpaste="this.value=this.value.replace(/\D/g,'')"
                />
            </span>             <hr/>
        </li>
        <li>
            <span>3、只能输入【大小写英文】的输入框</span>
            <span>
                <input     type="text" 
                        name="" 
                        id="cc" 
                        value=""
                        maxlength="15"
                        autocomplete="off"
                        οnkeyup="this.value=this.value.replace(/[^\a-\z\A-\Z]/g,'')"
                        οnpaste="this.value=this.value.replace(/[^\a-\z\A-\Z]/g,'')"
                        οncοntextmenu="value.replace(/[^\a-\z\A-\Z]/g,'')"
                />
            </span>             <hr/>
        </li>
        <li>
            <span>4、只能输入【小写英文】的输入框</span>
            <span>
                <input     type="text" 
                        name="" 
                        id="dd" 
                        value=""
                        maxlength="15"
                        autocomplete="off"
                        οnkeyup="this.value=this.value.replace(/[^\a-\z]/g,'')"
                        οnpaste="this.value=this.value.replace(/[^\a-\z]/g,'')"
                        οncοntextmenu="value.replace(/[^\a-\z]/g,'')"
                />
            </span>             <hr/>
        </li>
        <li>
            <span>5、只能输入【大写英文】的输入框</span>
            <span>
                <input     type="text" 
                        name="" 
                        id="ee" 
                        value=""
                        maxlength="15"
                        autocomplete="off"
                        οnkeyup="this.value=this.value.replace(/[^\A-\Z]/g,'')"
                        οnpaste="this.value=this.value.replace(/[^\A-\Z]/g,'')"
                        οncοntextmenu="value.replace(/[^\A-\Z]/g,'')"
                />
            </span>             <hr/>
        </li>
        <li>
            <span>6、检测手机号的校验</span>
            <span>
                <input     type="text" 
                        class="phone"
                        maxlength="11"
                        autocomplete="off"
                        οnblur="checkPhone(this)"
                />
            </span>             <hr/>
        </li>
        <li>
            <span>7、只能输入数字,只有1个小数点、 小数点后两位</span>
            <span>
                <input type="text"  name="" οninput="inputnum(this)">
            </span>             <hr/>
        </li>
        <li>
            <span>8、只能输入【汉字】</span>
            <span>
                <input     type="text"  
                        name="" 
                        id=""
                        autocomplete="off"
                        οnkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')"
                        onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
                />
            </span>             <hr/>
        </li>
        <li>
            <span>9、只能输入【数字和英文】</span>
            <span>
                    <input  type="text"  
                            autocomplete="off"
                            οnkeyup="value=value.replace(/[\W]/g,'') "
                            onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
                    />
            </span>             <hr/>
        </li>
        <li>
            <span>10、只能输入【汉字和字母】</span>
            <span>
                    <input id="a" type="text" οninput="test123();" />
            </span>             <hr/>
        </li>
        <li>
            <span>11、(经度负180  到  正180之间)正则正数、负数、-只能在最前面有这个符号、小数点</span>
            <span>
                <input type="text" id="text1">
            </span>
            <hr/>
        </li>
    </div>    
    
    <script type="text/javascript">
        $('#text1').keyup(function(){        //    键盘抬起时
            var text=$('#text1').val();        //    input框内容
            var value=text.length;            //    input框内容长度
            var a=text.substr(0,1)            //    input框内容的第一个元素
            var obj=document.querySelector("#text1") 
            if(value>0){                    //     判断input框的长度,如果大于0(也就是input框内已经输入了内容)
                if(a=='-'){                 //     同时载判断输入的第一个元素是不是‘-’,如果则input框内只能输入‘-’/数字/‘.’
                    obj.value=obj.value.replace(/[^\-\d\.]/g,'');
                    
                }else{                         //如果输入的元素第一个不是‘-’,则input框内只能输入数字/‘.’
                    obj.value=obj.value.replace(/[^\d\.]/g,'');
                }
                obj.value=obj.value.replace(/\.{2,}/g,'');    // 点只能出现一次
                obj.value=obj.value.replace(".","$#$").replace(/\./g,'').replace("$#$",".");
                obj.value=obj.value.replace(/\-{2,}/g,'');    // 减号只能出现一次
                obj.value=obj.value.replace('-','$#$').replace(/\-/g,'').replace('$#$','-');
                obj.value=obj.value.replace(/^(\-)*(\d+)\.(\d+).*$/,'$1$2.$3')
                if(obj.value-0 >180 || obj.value-0 <-180){
                    console.log("不正确")
                    $("#text1").val("")
                }else{
                    console.log("正确")
                }
            }
        })    
    </script>
    
        
    <script type="text/javascript">
        //检测手机
        function checkPhone(obj){ 
            var phone = obj.value;
            if(!(/^1[3|4|5|8][0-9]\d{8}$/.test(phone))){ 
                alert("不是完整的11位手机号或者正确的手机号"); 
                $(".phone").val("")
                return false; 
            } 
        }
        function inputnum(obj,val){
            obj.value = obj.value.replace(/[^\d.]/g,"");         //清除"数字"和"."以外的字符
            obj.value = obj.value.replace(/^\./g,"");             //验证第一个字符是数字
            obj.value = obj.value.replace(/\.{2,}/g,"");         //只保留第一个, 清除多余的
            obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
            obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');     //\d 表示的点 只能输入两个小数
        }
        
        // 汉字和英文===正则表达式
        function checkUsername(){
            var reg = new RegExp("^[A-Za-z0-9\u4e00-\u9fa5]+$");
            var username = document.getElementById("username").value.trim();
            if(!reg.test(username)){
                alert("请输入中文、数字和英文!");
                $("#username").val("");
            }
        }
    
        function test123(){
            var regx = /^[\u4E00-\u9FA5A-Za-z0-9]+$/
            var value = document.getElementById("a").value
            if(regx.test(value)){
                console.log("格式正确1111")
            } else {
                console.log("格式错误2222")
                $("#a").val("");
            }   
        }    
    
    </script>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值