JS练习笔记(3)--判断数字是否为两位数

我是按照实例索引写的第三课的第6个练习,同样是和源码写的区别比较大。
需要达到的效果为
1位数
2位数
多位数

我的思路是将输入的数字转换为数组,然后获得数组的长度来判断是否为2位数。

    <script type="text/javascript">
        window.onload = function () {
            var input = document.getElementsByTagName('input')[0];
            var btn = document.getElementsByTagName('button')[0];
            input.onkeyup = function (){
                this.value = this.value.replace(/[^\d]/,"")
            }
            btn.onclick = function() {
                var arr = input.value.split('');
                if(arr.length == 2){
                    alert('√这是2位数');
                }else{
                    alert('这是'+arr.length+"位数");

                }

            }
        }
    </script>
    <body>
        <div class = 'outer'>
            <input type = 'text'>
            <button>是否为两位数</button>
        </div>
    </body>

作者大大的源码为:


window.onload = function ()
{
    var aInput = document.getElementsByTagName("input");
    var aSpan = document.getElementsByTagName("span")[0];
    var i = 0;

    aInput[0].onkeyup = function () //不是数字的输入删除
    {
        this.value = this.value.replace(/[^\d]/,"")
    }

    aInput[1].onclick = function ()
    {
        (aInput[0].value == "") ?
        alert("请输入数字!") :
        alert(/^\d{2}$/.test(parseInt(aInput[0].value)) ? "√ 是两位数" : "这是" + aInput[0].value.length + "位数");
    }
};

大大通过三元表达式来进行判断。自己总是想不出来用三元表达式(ಥ_ಥ)

(aInput[0].value == "") ?
        alert("请输入数字!") :
        alert(/^\d{2}$/.test(parseInt(aInput[0].value)) ? "√ 是两位数" : "这是" + aInput[0].value.length + "位数");

先是判断里面的/^\d{2}$/.test(parseInt(aInput[0].value)) ? "√ 是两位数" : "这是" + aInput[0].value.length + "位数";通过正则表达式判断输入的数字是否是2位数,是则显示"√ 是两位数",否则显示"这是" + aInput[0].value.length + "位数";我才意识到 input的value 是 string类型,那么不需要转为数组就知道其长度啦。所以我写的多此一举了….而且也忽视了判断是否输入为零。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值