javascript - 关于正则表达式的一些问题
问题描述
<!DOCTYPE html> <html lang='en'> <head> <meta charset='utf-8' /> <title>简易网页时钟</title> <style type='text/css'> body,p {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> <p id='clock'><span></span>点<span></span>分<span></span>秒 </p> </body> </html>
1.return a.toString().replace(/^(d)$/,'0$1')这句表达的是什么意思呢?2.setInterval(getTimes(),1000)这样写不行吗?为什么?
问题解答
回答1:1、/^(d)$/用于匹配一个只有一个数字的字符串,如2、3等,括号的作用在于把数字存为分组1,replace(/^(d)$/,'0$1')用于在数字前添加0,$1表示分组1存放的字符串,如2替换为02、3替换为03,你可以在console输入’2’.replace(/^(d)$/,'0$1')运行看看结果
2、不行,setInterval第一参数必须是一个函数,而getTimes()是运行函数后的值,只有getTimes才是函数
连续回答了题主两条类似的问题,建议题主先认真看看书,打好基础
相关文章:
1. android - 第三方App调用高德地图,总是直接进入到导航页面,有没有办法进入首页?2. javascript - js控制元素样式的疑惑3. javascript - fis3 构建 模块加载调用问题,index.js不能加载模块zepto.js,也没有错误报警,4. javascript - vue.js插件中的全局方法,全局资源和实例方法区别是什么?5. python - Django找不到报错找不到模块,但是文件中有6. 微信端电子书翻页效果7. 网页爬虫 - Python爬虫返回状态码与实际情况不符?8. ueditor上传服务器提示后端配置项没有正常加载,求助!!!!!9. javascript - 网页中如何插入这样一个音乐播放的界面呢?,用引用的src嘛?10. android - 微信这个效果是怎么实现的