js正则验证方法大全(未完待续)

1.JS正则验证示例

 


    <div>
        <%--只可录入数字,直接用正则就可以--%>
        <input type="text" onkeyup="this.value=this.value.replace(/[^0-9.]/g,'')" />
        <%--验证百分比,使用JS正则验证--%>
        <input type="text" onkeyup="this.value=this.value.replace(/[^0-9.]/g,'')" onblur="checkPercent(this)" />
        <%--验证电话号码,使用JS正则验证--%>
        <input type="text" onkeyup="this.value=this.value.replace(/[^0-9.]/g,'')" onblur="checkMobile(this.value)" />
    </div>
<!--JS 正则验证显示-->
<script type="text/javascript">
    //验证百分比
    function checkPercent(obj) {
        if (obj.value != "") {
            var str = obj.value;
            var pattern = /^([1-9]{1}[0-9]{0,1}|0)(\.\d{1,2}){0,1}$/;
            if (!str.match(pattern)) {
                alert("格式错误,有效格式如:88.88%(整数最多两位,小数位最多为两位)");
                obj.value = "";
                obj.focus();
                return false;
            }
        }
        return true;
    }
    //验证电话
    function checkMobile(s) {
        if (trim(s) != "") {
            var regu = /^[1][3-8][0-9]{9}$/;
            var re = new RegExp(regu);
            if (re.test(s)) {
                alert(s);
                return true;
            } else {
                alert("电话录入格式错误");
                return false;
            }
        }
    }
//验证电话
var checkPhone = function () { 
    var $phone = $("#memberPhone");
    if (!/^(13[0-9]|14[0-9]|15[0-9]|16[0-9]|17[0-9]|18[0-9])\d{8}$/i.test($phone.val())) 
    {
      alert("温馨提示:请输入正确手机号!");
      $phone.focus();
      return;
    }
}
</script>
<!--JS trim()方法-->
<script type="text/javascript">
    function trim(str) { //删除左右两端的空格
        return str.replace(/(^\s*)|(\s*$)/g, "");
    }
    function ltrim(str) { //删除左边的空格
        return str.replace(/(^\s*)/g, "");
    }
    function rtrim(str) { //删除右边的空格
        return str.replace(/(\s*$)/g, "");
    }
</script>

密码强度验证

<div class="col-md-12 ">
   <input type="password" id="password" class="form-control valid" name="password" placeholder="密码" aria-invalid="false">
   <label class="mt-1 labeltip" for="">8-18位,包含大写字母、小写字母、符号、数字中的2种以上</label>
   <label id="password-error" class="error col-md-12 passerrow mg-l" for="password" style="display: none;"></label>
</div>
 let reg = /.*[A-Z]+.*/  // 是否包含大写字母
    let reg2 = /.*[a-z]+.*/  // 是否包含小写字母
    let reg3 = /.*[0-9]+.*/ // 包含数字
    let reg4=/.*[\!\@\#\$\%\^\&\*\(\)\+\?\<\>\/\,\.]+.*/ // 包含特殊字符
    let pwdstrong = 0;
    let pwdLevel = 0;
    let smsInterval = null; //计时器
    let smstime = 60;//秒

    //密码强度验证
    $('#password').on('keyup', function () {
        let val = $.trim(this.value)
        if (!val) {
            $('.pwd-strength span').removeClass('strength-green')
            // $('.strength-name').text('')
            return
        }

        if (reg.test(val)) {
            pwdstrong += 1;
        }
        if (reg2.test(val)) {
            pwdstrong += 1;
        }
        if (reg3.test(val)) {
            pwdstrong += 1;
        }
        if (reg4.test(val)) {
            pwdstrong += 1;
        }
        $('.pwd-strength span').removeClass('strength-green').filter(':lt(' + pwdstrong + ')').addClass('strength-green');
        // $('.strength-name').text(pwdstrong === 3 ? "强" : pwdstrong === 2 ? "中" : "弱");
        pwdLevel = pwdstrong;
        pwdstrong = 0;
    })

2.正则验证示例

说明:正则表达式通常用于两种任务:1.验证,2.搜索/替换。用于验证时,通常需要在前后分别加上^和$,以匹配整个待验证字符串;搜索/替换时是否加上此限定则根据搜索的要求而定,此外,也有可能要在前后加上\b而不是^和$。此表所列的常用正则表达式,除个别外均未在前后加上任何限定,请根据需要,自行处理。

说明正则表达式
网址(URL)[a-zA-z]+://[^\s]*
IP地址(IP Address)((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
电子邮件(Email)\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
QQ号码[1-9]\d{4,}
HTML标记(包含内容或自闭合)<(.*)(.*)>.*<\/\1>|<(.*) \/>
密码(由数字/大写字母/小写字母/标点符号组成,四种都必有,8位以上)(?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.*\n).*$

密码验证 6-18位密码,由数字、大小写字母、特殊字符两种以上

/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9_A-Za-z\!\@\#\$\%\^\&\*\(\)\+\?\<\>\/\,\.]{8,18}$/

日期(年-月-日)(\d{4}|\d{2})-((1[0-2])|(0?[1-9]))-(([12][0-9])|(3[01])|(0?[1-9]))
日期(月/日/年)((1[0-2])|(0?[1-9]))/(([12][0-9])|(3[01])|(0?[1-9]))/(\d{4}|\d{2})
时间(小时:分钟, 24小时制)((1|0?)[0-9]|2[0-3]):([0-5][0-9])
汉字(字符)[\u4e00-\u9fa5]
中文及全角标点符号(字符)[\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee]
中国大陆固定电话号码(\d{4}-|\d{3}-)?(\d{8}|\d{7})
中国大陆手机号码1\d{10}
中国大陆邮政编码[1-9]\d{5}
中国大陆身份证号(15位或18位)\d{15}(\d\d[0-9xX])?
非负整数(正整数或零)\d+
正整数[0-9]*[1-9][0-9]*
负整数-[0-9]*[1-9][0-9]*
整数-?\d+
小数(-?\d+)(\.\d+)?
不包含abc的单词\b((?!abc)\w)+\b
 

3.正则替换字符串中图片标签

正则:<\s?img[^>]*>
var contesStr = contesStr.replace(/<\s?img[^>]*>/gi, ''); 

4.正则匹配所有p标签

正则:<\S?p>  
可以匹配<p>  </p>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值