正则表达式

2021-09-08  本文已影响0人  hugemountain

参考:

比较准确完整的中文字符正则校验-demonbug-cnblogs

1 只允许数字字母空格和英文字符

var reg_ssid = /^[a-zA-Z0-9 ~!@#$%^&*()_+`\\\-\=<>?,:;\/'".|[\]{}]*$/
function check(value) {
        // /[\u4e00-\u9fa5]/ 
        if (!reg_ssid.test(value)) {
            $("#err").html("错误")
        } else {
            $("#err").html("正确")
        }
    }

说明

2 数字字母数字,至少两种,6-12位

25+正则面试题详尽解析,让你轻松通过正则面试,让你少写2000行代码-juejin-前端胖头鱼

  1. 密码长度是6-12位
  2. 由数字、小写字符和大写字母组成
  3. 必须至少包括2种字符
let reg = /(((?=.*\d)((?=.*[a-z])|(?=.*[A-Z])))|(?=.*[a-z])(?=.*[A-Z]))^[a-zA-Z\d]{6,12}$/

3 数字大小写特殊字符包含3种,不含空格

<body>
    <div class="mydiv">
        <input id="myinput" type="text" onkeyup="check(this.value);">
        <div id="err" style="background-color: #ccc;  min-height: 30px;"></div>
    </div>
</body>
<script>
    /* 
        数字 小写 特殊
        数字 大写 特殊
        大 小写 数字 
        大 小写 特殊
    */
    let reg1 = /(?=.*\d)(?=.*[~!@#$%^&*()_+`\-\=<>?,:;\/'".\\\|[\]{}])((?=.*[a-z])|(?=.*[A-Z]))/
    let reg2 = /(?=.*[a-z])(?=.*[A-Z])((?=.*\d)|(?=.*[~!@#$%^&*()_+`\-\=<>?,:;\/'".\\\|[\]{}]))/
    let reg3 = /\s+/g
    function check(value) {
        if ((reg1.test(value) || reg2.test(value)) && !reg3.test(value)) {
            document.getElementById("err").innerHTML= "正确";
        } else {
            document.getElementById("err").innerHTML= "错误";
        }
    }
</script>

综合

//需要引入jquery.js
<body>
    <div class="mydiv">
        <input id="myinput" type="text" onkeyup="check(this.value);">
        <div id="err" style="background-color: #ccc;  min-height: 30px; width: 400px;">默认</div>
    </div>
</body>
<script>
    /**
     * 设置2.4G和5G的ssid为"☜☝☞■"不行
     * 【预期结果】
       支持的字符为:
       1.字母大小写
       2.空格
       3.特殊字符 ~!@#$%^&*()_+`-=<>.?,:;|[]{}
       4.中文,支持中文特殊字符
       5.支持表情
     * */

    var regexunicode = /^[\u0000-\uFFFF]{1,}$/;//只校验unicode
    var regexfullword = /^[\u2000-\u206f\u3000-\u303f\u4e00-\u9fef\uff00-\uffef]*$/;  //中文包括中文字符校验
    // var regexfullword = /^[\u4e00-\u9fa5]*$/;  //中文校验
    var regSpecial = /^[a-zA-Z0-9 ~!@#$%^&*()_+`\[\]\-\=<>?,:;\/'".|\\{}]*$/;//数字字母下划线
    // var regexwhitespace=/\s+/g;
    var regexEmoji = /[\u0020-\u007E\u00A0-\u00BE\u2E80-\uA4CF\uF900-\uFAFF\uFE30-\uFE4F\uFF00-\uFFEF\u0080-\u009F\u2000-\u201f\u2026\u2022\u20ac\r\n]/; //表情校验
    var regAll = /(?=.*[\x00-\xFFa-zA-Z0-9 ~!@#$%^&*()_+`\[\]\-\=<>?,:;\/'".|\\{}])|(?=.*[^\u0020-\u007E\u00A0-\u00BE\u2E80-\uA4CF\uF900-\uFAFF\uFE30-\uFE4F\uFF00-\uFFEF\u0080-\u009F\u2000-\u201f\u2026\u2022\u20ac\r\n])/;


    function check(value) {
        if (regexunicode.test(value)) {
            if (regexfullword.test(value)) {
                $("#err").html("正确")
                $("#err").css("background-color", "green")

            } else {
                $("#err").html("错误")
                $("#err").css("background-color", "pink")
            }
        } else {
            $("#err").html("错误")
            $("#err").css("background-color", "pink")
        }
    }
</script>
上一篇 下一篇

猜你喜欢

热点阅读