javascript - 关于正则表达式的一些问题

查看:104
本文介绍了javascript - 关于正则表达式的一些问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="utf-8" />
    <title>简易网页时钟</title>
    <style type="text/css">
    body,div {margin: 0;padding: 0;}
    body {color: #fff;font: 16px/1.5}
    #clock {width: 300px;text-align: center;background: #1a1a1a;margin: 10px auto;padding: 20px 0;}
    span {color: #000;width: 80px;line-height: 2;background: #fbfbfb;border: 2px solid #b4b4b4;margin: 0 10px;padding: 0 10px;}
    </style>
    <script type="text/javascript">
    window.onload = function() {
        var oClock = document.getElementById("clock");
        var aSpan = oClock.getElementsByTagName("span");
        setInterval(getTimes,1000);
        getTimes();
        function getTimes() {
            var oDate = new Date();
            var aDate = [oDate.getHours(),oDate.getMinutes(),oDate.getSeconds()];
            for(var i in aDate) aSpan[i].innerHTML = format(aDate[i])
        }
        function format(a) {
            return a.toString().replace(/^(\d)$/,"0$1")
        }
    }
    </script>
    
    
    <body>
    <div id="clock">
        <span></span>点<span></span>分<span></span>秒
    </div>
    </body>
    </html>

1.return a.toString().replace(/^(\d)$/,"0$1")这句表达的是什么意思呢?
2.setInterval(getTimes(),1000)这样写不行吗?为什么?

解决方案

1、/^(\d)$/用于匹配一个只有一个数字的字符串,如23等,括号的作用在于把数字存为分组1
replace(/^(\d)$/,"0$1")用于在数字前添加0$1表示分组1存放的字符串,
2替换为023替换为03
你可以在console输入'2'.replace(/^(\d)$/,"0$1")运行看看结果

2、不行,setInterval第一参数必须是一个函数,而getTimes()是运行函数后的值,只有getTimes才是函数

连续回答了题主两条类似的问题,建议题主先认真看看书,打好基础

这篇关于javascript - 关于正则表达式的一些问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆