zoukankan      html  css  js  c++  java
  • 4、DOM之正则表达式

    正则表达式变量的test()函数可以用于检测、约束输入内容或字符串

    正则表达式是用于描述 字符排列 和 匹配模式语法规则 的表达式
    正则得组成: /^abc,w?$/修饰符
    正则中的元字符
    .代表除了换行符之外的任意一个字符
    . 转义字符 只代表.
    d 代表匹配一个数字 等价于 [0-9]
    w 代表匹配一个字符 (字母、数字、下划线 ) 等价于[a-zA-Z0-9_]
    ^ 匹配开始
    $ 匹配结束
    正则中的量词
    * 代表匹配任意个 大于等于0 等价于 {0,}
    + 代表匹配至少一个 大于等于1 等价于 {1,}
    ? 代表匹配0次或者1次 等价于 {0,1}
    {a,} 代表匹配至少a次
    {a,b} 代表匹配至少a次,最多b次 比如{2,6} 代表至少匹配2次,最多6次
    {a} 代表匹配a次
    w{2,6} 代表最少2个字符,最多6个字符
    d{11} 代表必须11个数字
    表示或 (条件1|条件2|条件3) 比如: (男|女)
    比如比配acfge 不连续的值 使用 [acfge] 代表给定的字符集中匹配一个
    如果是连续的值[abcdefgh]或者使用[a-h]
    比如写一个规则,匹配至少6个数字,最多8个数字 ===》 /^d{6,8}$/
    /^$/ : 代表必须匹配
    // : 只代表包含
    中文字符: [u4e00-u9fa5]

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <form action="fsasfasf" onsubmit=" return ck();">  <!--onsubmit 表单事件,如果里面返回false代表阻止表单的默认提交行为-->
            姓名:<input type="text" name="name" id="name"><span id="nameMsg" style="color: red;">2~20位中文字符</span><br>
            密码:<input type="text" name="password" id="password"><span id="passwordMsg" style="color: red;">6~8位数字</span><br>
            性别:<input type="text" name="sex" id="sex"><span id="sexMsg" style="color: red;">男/女</span><br>
            手机号:<input type="text" name="tel" id="tel"><span id="telMsg" style="color: red;">11位手机号</span><br>
            邮箱:<input type="text" name="email" id="email"><span id="emailMsg" style="color: red;">请输入正确的邮箱</span><br>
            <input type="submit" value="提交">
        </form>
    </body>
    </html>
    <script>
        function ck(){
            //校验姓名,匹配2~20位中文字符  [u4e00-u9fa5]
            var nameReg = /^[u4e00-u9fa5]{2,20}$/;
            //获取名字输入框的值
            var name = document.getElementById("name").value;
            //判断是否匹配,如果匹配返回true
            if (nameReg.test(name)) {
                // alert("用户名校验通过")
                //修改姓名错误信息的内容
                document.getElementById("nameMsg").textContent="正确"
                //操作js样式
                document.getElementById("nameMsg").style.color="green";
            }else {
                //alert("用户名校验失败")
                document.getElementById("nameMsg").textContent="2~20位中文字符"
                //操作js样式
                document.getElementById("nameMsg").style.color="red";
            }
    
            //获取密码的值
            var password = document.getElementById("password").value;
            //定义密码的规则 : 6~8位数字
            var passwordReg = /^d{6,8}$/;
            //进行规则校验
            if (passwordReg.test(password)) {
                // alert("密码校验通过")
                document.getElementById("passwordMsg").textContent="正确"
                //操作js样式
                document.getElementById("passwordMsg").style.color="green";
            }else {
                // alert("密码校验失败")
                document.getElementById("passwordMsg").textContent="6~8位数字"
                //操作js样式
                document.getElementById("passwordMsg").style.color="red";
            }
    
            var sex = document.getElementById("sex").value;
            var sexReg = /^(男|女)$/;
            if (sexReg.test(sex)){
                // alert("性别校验通过")
                document.getElementById("sexMsg").textContent="正确"
            } else {
                // alert("性别校验失败")
            }
    
            var tel = document.getElementById("tel").value;
            var telReg = /^1d{10}$/;
            if (telReg.test(tel)){
                // alert("手机号校验通过")
                document.getElementById("telMsg").textContent="正确"
            }else {
                // alert("手机号校验失败")
            }
    
            //邮箱 qq号@qq.com   .cn
            //  w+@w+.(com|cn|com.cn)
            //w{1,}@w{1,}.(com|cn|com.cn)
            var email = document.getElementById("email").value;
            var emailReg = /^w+@w+.(com|cn|com.cn)$/;
            if (emailReg.test(email)){
                // alert("邮箱校验通过")
                document.getElementById("emailMsg").textContent="正确"
            }else {
                // alert("邮箱校验失败")
            }
    
    
            return false;
        }
    </script>
    

      

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <form action="fsasfasf" onsubmit=" return ck();">  <!--onsubmit 表单事件,如果里面返回false代表阻止表单的默认提交行为-->
            姓名:<input type="text" name="name" id="name"><span id="nameMsg" style="color: red;">3~20位字符,以首字母开头</span><br>
            密码:<input type="text" name="password" id="password"><span id="passwordMsg" style="color: red;">6~8位数字</span><br>
            性别:<input type="text" name="sex" id="sex"><span id="sexMsg" style="color: red;">男/女</span><br>
            手机号:<input type="text" name="tel" id="tel"><span id="telMsg" style="color: red;">11位手机号</span><br>
            邮箱:<input type="text" name="email" id="email"><span id="emailMsg" style="color: red;">请输入正确的邮箱</span><br>
            <input type="submit" value="提交">
        </form>
    </body>
    </html>
    <script>
        function ck(){
            //定义计数器
            var count = 0;
    
            //校验姓名,
            var nameReg = /^[a-zA-Z]w{2,19}$/;
            //获取名字输入框的值
            var name = document.getElementById("name").value;
            //判断是否匹配,如果匹配返回true
            if (nameReg.test(name)) {
                // alert("用户名校验通过")
                //修改姓名错误信息的内容
                document.getElementById("nameMsg").textContent="正确"
                //操作js样式
                document.getElementById("nameMsg").style.color="green";
            }else {
                count ++;
                //alert("用户名校验失败")
                document.getElementById("nameMsg").textContent="3~20位字符,以首字母开头"
                //操作js样式
                document.getElementById("nameMsg").style.color="red";
            }
    
            //获取密码的值
            var password = document.getElementById("password").value;
            //定义密码的规则 : 6~8位数字
            var passwordReg = /^d{6,8}$/;
            //进行规则校验
            if (passwordReg.test(password)) {
                // alert("密码校验通过")
                document.getElementById("passwordMsg").textContent="正确"
                //操作js样式
                document.getElementById("passwordMsg").style.color="green";
            }else {
                count++;
                // alert("密码校验失败")
                document.getElementById("passwordMsg").textContent="6~8位数字"
                //操作js样式
                document.getElementById("passwordMsg").style.color="red";
            }
    
            var sex = document.getElementById("sex").value;
            var sexReg = /^(男|女)$/;
            if (sexReg.test(sex)){
                // alert("性别校验通过")
                document.getElementById("sexMsg").textContent="正确"
            } else {
                count++;
                // alert("性别校验失败")
            }
    
            var tel = document.getElementById("tel").value;
            var telReg = /^1d{10}$/;
            if (telReg.test(tel)){
                // alert("手机号校验通过")
                document.getElementById("telMsg").textContent="正确"
            }else {
                count++;
                // alert("手机号校验失败")
            }
    
            //邮箱 qq号@qq.com   .cn
            //  w+@w+.(com|cn|com.cn)
            //w{1,}@w{1,}.(com|cn|com.cn)
            var email = document.getElementById("email").value;
            var emailReg = /^w+@w+.(com|cn|com.cn)$/;
            if (emailReg.test(email)){
                // alert("邮箱校验通过")
                document.getElementById("emailMsg").textContent="正确"
            }else {
                count++;
                // alert("邮箱校验失败")
            }
    
            //判断计数器
            if (count > 0){
                alert("请正确输入")
                return false;
            }else {
                alert("校验都通过")
                return true;
            }
    
    
        }
    </script><!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <form action="fsasfasf" onsubmit=" return ck();">  <!--onsubmit 表单事件,如果里面返回false代表阻止表单的默认提交行为-->
            姓名:<input type="text" name="name" id="name"><span id="nameMsg" style="color: red;">3~20位字符,以首字母开头</span><br>
            密码:<input type="text" name="password" id="password"><span id="passwordMsg" style="color: red;">6~8位数字</span><br>
            性别:<input type="text" name="sex" id="sex"><span id="sexMsg" style="color: red;">男/女</span><br>
            手机号:<input type="text" name="tel" id="tel"><span id="telMsg" style="color: red;">11位手机号</span><br>
            邮箱:<input type="text" name="email" id="email"><span id="emailMsg" style="color: red;">请输入正确的邮箱</span><br>
            <input type="submit" value="提交">
        </form>
    </body>
    </html>
    <script>
        function ck(){
            //定义计数器
            var count = 0;
    
            //校验姓名,
            var nameReg = /^[a-zA-Z]w{2,19}$/;
            //获取名字输入框的值
            var name = document.getElementById("name").value;
            //判断是否匹配,如果匹配返回true
            if (nameReg.test(name)) {
                // alert("用户名校验通过")
                //修改姓名错误信息的内容
                document.getElementById("nameMsg").textContent="正确"
                //操作js样式
                document.getElementById("nameMsg").style.color="green";
            }else {
                count ++;
                //alert("用户名校验失败")
                document.getElementById("nameMsg").textContent="3~20位字符,以首字母开头"
                //操作js样式
                document.getElementById("nameMsg").style.color="red";
            }
    
            //获取密码的值
            var password = document.getElementById("password").value;
            //定义密码的规则 : 6~8位数字
            var passwordReg = /^d{6,8}$/;
            //进行规则校验
            if (passwordReg.test(password)) {
                // alert("密码校验通过")
                document.getElementById("passwordMsg").textContent="正确"
                //操作js样式
                document.getElementById("passwordMsg").style.color="green";
            }else {
                count++;
                // alert("密码校验失败")
                document.getElementById("passwordMsg").textContent="6~8位数字"
                //操作js样式
                document.getElementById("passwordMsg").style.color="red";
            }
    
            var sex = document.getElementById("sex").value;
            var sexReg = /^(男|女)$/;
            if (sexReg.test(sex)){
                // alert("性别校验通过")
                document.getElementById("sexMsg").textContent="正确"
            } else {
                count++;
                // alert("性别校验失败")
            }
    
            var tel = document.getElementById("tel").value;
            var telReg = /^1d{10}$/;
            if (telReg.test(tel)){
                // alert("手机号校验通过")
                document.getElementById("telMsg").textContent="正确"
            }else {
                count++;
                // alert("手机号校验失败")
            }
    
            //邮箱 qq号@qq.com   .cn
            //  w+@w+.(com|cn|com.cn)
            //w{1,}@w{1,}.(com|cn|com.cn)
            var email = document.getElementById("email").value;
            var emailReg = /^w+@w+.(com|cn|com.cn)$/;
            if (emailReg.test(email)){
                // alert("邮箱校验通过")
                document.getElementById("emailMsg").textContent="正确"
            }else {
                count++;
                // alert("邮箱校验失败")
            }
    
            //判断计数器
            if (count > 0){
                alert("请正确输入")
                return false;
            }else {
                alert("校验都通过")
                return true;
            }
    
    
        }
    </script>
     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6 </head>
     7 <body>
     8 <form action="0000" onsubmit="return ck()">
     9     用户名:<input type="text" name="name" id="name"><span style="color: red" id="s1">3-20个字符,以字母开头</span><br>
    10 密码:<input type="text" name="pass" id="pass" ><span style="color: red" id="s2">6-15个字符</span><br>
    11 手机号:<input type="text" name="tel" id="tel" ><span style="color: red" id="s3">请输入合法的11位手机号</span><br>
    12 邮箱:<input type="text" name="email" id="email" ><span style="color: red" id="s4">请输入合法的邮箱格式</span><br>
    13 <input type="submit" value="提交">
    14 </form>
    15 <script>
    16     function ck(){
    17         var count=0;
    18         var nameReg =/^[a-zA-Z]w{2,19}$/
    19         var name=document.getElementById("name").value;
    20         if (nameReg.test(name)){
    21             document.getElementById("s1").textContent="正确";
    22             document.getElementById("s1").style.color="green";
    23         }else{
    24             count++;
    25             document.getElementById("s1").textContent="错误";
    26         }
    27 
    28         var passReg=/^w{6,15}$/;
    29         var pass=document.getElementById("pass").value;
    30         if (passReg.test(pass)){
    31             document.getElementById("s2").textContent="正确";
    32             document.getElementById("s2").style.color="green";
    33         }else{
    34             count++;
    35             document.getElementById("s2").textContent="错误";
    36 
    37         }
    38 
    39         var telReg=/^1d{10}$/;
    40         var tel=document.getElementById("tel").value;
    41         if (telReg.test(tel)){
    42             document.getElementById("s3").textContent="正确";
    43             document.getElementById("s3").style.color="green";
    44         }else{
    45             count++;
    46             document.getElementById("s3").textContent="错误";
    47 
    48         }
    49 
    50         var emailReg=/^w+@w+.w+$/;
    51         var email=document.getElementById("email").value;
    52         if (emailReg.test(email)){
    53             document.getElementById("s4").textContent="正确";
    54             document.getElementById("s4").style.color="green";
    55         }else{
    56             count++;
    57             document.getElementById("s4").textContent="错误";
    58 
    59         }
    60         if (count==0){
    61             return true;
    62         }else {
    63             return  false;
    64         }
    65 
    66     }
    67 
    68 </script>
    69 </body>
    70 </html>

    正则表达式
    元字符:
    d 代表匹配一个数字 等价于[0-9]
    w 代表匹配一个字符 等价于[a-zA-Z0-9_]
    量词:
    + 代表匹配至少一个 等价于{1,}
    * 代表匹配任意个 等价于{0,}
    ? 代表匹配0个或者1个 等价于{0,1}

    {a,} 代表至少出现a个
    {a,b} 至少出现a个,最多出现b个
    {a} 必须出现a个
    代表或: (|)

    正则表达式.test(值)

  • 相关阅读:
    开始准备考研了
    ubuntu安装完vbox没有无缝模式
    Terminator快捷键
    ubuntu启动慢显示waiting for network configuration
    terminal快捷键
    openstack根据软件选择实例resume
    输出数组的全排列
    给非同步的集合加锁原理。
    集合框架—ArrayList的用法
    集合框架 Map的小例子
  • 原文地址:https://www.cnblogs.com/chang09/p/15031986.html
Copyright © 2011-2022 走看看