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. docker-machine添加一个已有的docker主机问题2. html - 用ajax提交表单后,返回验证数据在页面location.href跳转到主页,怎么传递session给主页3. node.js - node express 中ajax post请求参数接收不到?4. angular.js - grunt server 报错5. apache - nginx 日志删除后 重新建一个文件 就打不了日志了6. java - tomcat服务经常晚上会挂,求解?7. java - 原生CGLib内部方法互相调用时可以代理,但基于CGLib的Spring AOP却代理失效,为什么?8. 网站被黑,请教下大神,怎么对datebase.php内容加密。9. mysql - sql查询语句问题10. mysql的主从复制、读写分离,关于从的问题
