JS判断QQ号是否合法、JS原生判断、正则判断

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>判断是否是合法的QQ号</title>
    <style>
        h1 {
            text-align: center;
        }

        .box {
            box-sizing: border-box;
            margin: auto;
            padding: 50px;
            width: 440px;
            border-radius: 10px;
            border: 1px solid gray;
            text-align: center;
        }

        .box input[type="text"],
        input[type="password"] {
            margin: 10px 0px;
            padding-left: 10px;
            width: 300px;
            line-height: 50px;
            font-size: 24px;
            border: 1px solid gray;
        }

        .box button {
            margin: 20px 0px;
            padding-left: 10px;
            width: 153px;
            line-height: 40px;
            font-size: 18px;
            border: 1px solid gray;
        }
    </style>
</head>

<body>
    <h1>判断是否是合法的QQ号</h1>
    <hr>
    <section class="box">
        <input type="text" name="txt" maxlength="10" id="txt">
        <input type="password" name="pwd" id="pwd">
        <button id="zhc">注 册</button>
        <button id="btn">登 录</button>
    </section>


    <script>
        {
            //用正则判断
            let isQQ1 = (QQ) => {
                return(/^[1-9]\d{4,9}$/.test(String(QQ))) ? true : false;
            };
            
            //用原生JS判断
            let isQQ2 = (QQ) => {
                let ret = false;
                switch (true) {
                    // 1. 不能是空的
                    case !QQ || '' == QQ:
                        alert('QQ号不能为空!');
                        break;

                    // 2. 只能输入5-10
                    case 5 > QQ.length || 10 < QQ.length:
                        alert('请输入5到10位数字!');
                        break;

                    // 3. 不能以0开始
                    case QQ.startsWith('0', 0) || '0' == QQ[0]:
                        alert('不能以0开始!');
                        break;

                    // 4. 必须是一个合法的整数(注:!= 会隐士类型转换 !== 不会转换类型 类型不一样 直接返回不相等)
                    case isNaN(QQ) || QQ !== String(parseInt(QQ)):  //isNaN(QQ) 判断是否是合法数字,true代表不合法,  String(parseInt(QQ)) //QQ本身有小数.0 的情况(将原来的值取整,并转为字符类型后 和原来的值不相等时)
                        alert('请输入一个合法的整数!');
                        break;

                    default:
                        alert('OK是合法的QQ号 - 验证通过!');
                        ret = true;
                        break;
                };
                return ret;
            };

            let txt = document.querySelector('#txt');
            let pwd = document.querySelector('#pwd');
            let btn = document.querySelector('#btn');

            btn['onclick'] = () => {

                let QQ = txt.value;
                console.log(QQ, parseInt(QQ), String(parseInt(QQ)));

                //console.log(isQQ1(QQ));
                console.log(isQQ2(QQ));
                
            };
        };


        // jQuery 货币符、千分位的格式化
        jquery $.extend({
          /** 
            * 添加货币符、千分位将(数值四舍五入后格式化.)
            * 
            * @param num 数值(Number或者String) 
            * @param cent 要保留的小数位(Number) 
            * @param isThousand 是否需要千分位 0:不需要,1:需要(数值类型); 
            * @return 格式的字符串,如'1,234,567.45' 
            * @type String 
            */
            addCommafy: function (num = 0, cent = 2, isThousand = 1) {
                num = num.toString().replace(/\$|\,/g, '');
                if (isNaN(num)) num = '0';// 检查传入数值为数值类型 
                let sign = (num == (num = Math.abs(num)));// 获取符号(正/负数)
                num = Math.floor(num * Math.pow(10, cent) + 0.50000000001); // 把指定的小数位先转换成整数.多余的小数位四舍五入  
                let cents = num % Math.pow(10, cent); // 求出小数位数值  
                num = Math.floor(num / Math.pow(10, cent)).toString();  // 求出整数位数值  
                cents = cents.toString(); // 把小数位转换成字符串,以便求小数位长度  
                while (cents.length < cent) cents = '0' + cents; // 补足小数位到指定的位数 
                if (isThousand) {
                // 对整数部分进行千分位格式化.
                for (let i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++) {
                    num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3))
                }
                }
                return (0 < cent) ? '¥' + ((sign) ? '' : '-') + num + '.' + cents : '¥' + ((sign) ? '' : '-') + num
            },
            
            // 去除货币符、千分位
            delCommafy: function (num) {
                return ('' == (num + '').trim()) ? '' : num.replace(/¥|,|%/gi, '')
            }
        });
    </script>
</body>

</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值