正则表达式

参考:

比较准确完整的中文字符正则校验-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("正确")
        }
    }

说明

  • \w:数字字母下划线
  • 要转义
    • \\:匹配\字符
    • \/:匹配/
    • \]:匹配][]中括号会被当做匹配里面的字符,用转义把]分开

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>

(?=a)

记一次面试题,正则表达式(?=a)是什么意思? - 掘金-Maya本尊
https://juejin.cn/post/6844903855243657230

匹配key:value

"[\s\S]*"[\s]*:[\s]*"[\s\S]*",\n
posted @   要跑啊  阅读(63)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示