首页 > 试题广场 >

验证是否是身份证

[编程题]验证是否是身份证
  • 热度指数:7175 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
请补全JavaScript代码,要求以Boolean的形式返回字符串参数是否符合身份证标准。
注意:
1. 无需考虑地区信息、出生日期、顺序码与校验码的验证
示例1

输入

_isCard('21062319980907888X')

输出

true
<script>
    const _isCard = number => {
        // 补全代码
        let reg = /^\d{17}(\d|X|x){1}$/;
        return reg.test(number);
    }
</script>

发表于 2021-12-20 17:31:50 回复(0)
这道题还是等我学好了正则化再来做吧
发表于 2022-03-21 18:10:26 回复(2)
光长度就过了
const _isCard = number => {
    // 补全代码
    if((''+number).length != 18) return false;
    return true;
}

发表于 2021-12-23 15:16:23 回复(6)
 <script>
            const_isCard = number => {
                // 补全代码
                return number.length === 18
            }
        </script>
发表于 2022-09-12 14:29:05 回复(0)
 const _isCard = number => {
     if (number.length != 18)
         return false;
     for (let i = 0; i < number.length; i++) {
         let c = number.charAt(i);
         if (i == number.length - 1) {
             if (!((c >= '0' && c <= '9') || c == 'X'))
                 return false;
         } else {
             if (!(c >= '0' && c <= '9'))
                 return false;
         }
     }
     return true;
 }

发表于 2024-03-27 07:55:45 回复(0)
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <style>
       /* 填写样式 */
    </style>
</head>

<body>
    <!-- 填写标签 -->
    <script type="text/javascript">
        // 填写JavaScript
     
  const _isCard = number => {
            //判断长度是否等于18
        if(number.toString().split("").length==18){
            return true
        }else{
            return false
        }
       
    }
    </script>
</body>

</html>
发表于 2023-09-08 20:01:24 回复(0)
  const _isCard = number => {
       let reg=/^\d{17}(\d|X|x){1}$/
       return reg.test(number)
    }
发表于 2023-08-24 17:36:58 回复(0)
const _isCard = number => {
   return /^\d{17}(x|\d)$/i.test(`${number}`);
}

发表于 2023-07-25 16:12:01 回复(0)
const _isCard = number => {
  // 补全代码
  return /^\d{17}(\d|x)$/i.test(number);
};



发表于 2023-04-21 20:30:25 回复(0)
const _isCard = number => {
                // 补全代码
             n= number.split('')
             if(n.length==18){
                for(let i = 1; i <= n.length-1;i++){
                        if(n[i] % 1 == 0&n[n.length-1]=='X'){
                            return true;
                        }
                        else {return false}
                    }
                         
             }
             else {return false}
            }
发表于 2023-03-23 17:12:31 回复(0)
正则表达式
  // 补全代码
                number=''+number
                let len = number.length
                if(len!=18){
                    return false
                } 
                let reg = /\d{17}[\dXx]/g
             
                if(reg.test(number)){
                    return true
                }
                return false

发表于 2023-02-13 19:54:04 回复(0)
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>

        <script>
            const _isCard = number => {
                // 补全代码
                if(number.length != 18){
                    return false;
                }else if(number.length = 18){
                    for(let i = 1; i <= 17;i++){
                        if(number[i] % 1 == 0){
                            return true;
                        }
                    }
                }
            }
        </script>
    </body>
</html>
发表于 2023-01-01 16:01:01 回复(0)
   // 补全代码
let reg = /^\d{17}(\d|X)$/;
    return reg.test(number);
}

发表于 2022-12-04 10:02:14 回复(0)
  <script>
            const _isCard = number => {
                // 补全代码
               let reg=/^[1-9]\d{5}(19\d{2}|20[0-2][0-2])((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
               return reg.test(number)
            }
        </script>
发表于 2022-11-17 10:51:35 回复(0)
const _isCard = number => {
                // 补全代码
                //一代身份证(15位数字)
                //二代身份证18位数字或17数字+X/x
                var regx = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
                return regx.test(number)
            }
发表于 2022-10-15 10:46:12 回复(0)
const _isCard = number => {
                // 补全代码
                return number.length == 18 ? true:false
            }
//这题的判断也太随意了
发表于 2022-09-23 20:53:28 回复(0)
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>

        <script>
            const _isCard = number => {
                // 补全代码
                let reg = /^\d{17}(\d|X|x)$/;
                return reg.test(number)
            }
        </script>
    </body>
</html>
发表于 2022-09-05 12:08:32 回复(0)
<html lang="en"> <body>
    <script>
        const _isCard = number => {
            // 补全代码
            //使用一个正则表达式字面量,其由包含在斜杠之间的模式组成
            //^:匹配输入的开始
            //括号被称为捕获括号,匹配里面的内容
            //\d:匹配一个数字,等价于 [0-9]
            //{n}:n 是一个正整数,匹配了前面一个字符刚好出现了 n 次。
            //$:匹配输入的结束。
            //test:一个在字符串中测试是否匹配的 RegExp 方法,它返回 true 或 false。
            var regex = /(^\d{15}$)|(^\d{17}(\d|X|x)$)/
            return regex.test(number)
        }
    </script>
</body>
</body></html>
发表于 2022-08-30 20:35:50 回复(0)
第一次只判断长度直接过了 想了想还是要判一下每一项格式 正则忘记了 笨方法 菜鸟做法 笑死
1.首先看字符串或者转化为数组后的长度
2.把数组的最后一项提出来为wei(尾项的意思 笑死) 此时原数组变为17位
3.检测最后一项wei
4.检测前17项
发表于 2022-08-30 11:33:28 回复(0)
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>

        <script>
            const _isCard = number => {
                // 补全代码
                if(number.length!=18) return false
                reg='d{17}[a-z]|[A-Z]'
                if(reg.match(reg)) return true
                return false
                
            }
        </script>
    </body>
</html>
发表于 2022-08-25 17:56:46 回复(0)