【发布时间】:2017-06-09 12:30:52
【问题描述】:
我是编程新手,我正在学习 javascript。我不明白我的代码有什么问题,但我无法得到结果(即在文本框中显示总秒数)。该程序运行良好,直到匹配模式。但是当我使用 split() 函数时,一切都变得一团糟。请告诉我哪里出错了。谢谢你
<body>
<script>
function cal() {
var text = document.getElementById("pp").innerHTML;
var pattern = text.match(/[0-2][0-9]:[0-5][0-9]:[0-5][0-9]/);
var b = pattern.split(':');
var seconds = (+b[0]) * 3600 + (+b[1]) * 60 + (+b[2]);
document.getElementById("tot").value = seconds;
}
</script>
<div>
<p id="pp">The Time Right Now Is 12:34:56</p>
Total Seconds: <input type=t ext id="tot"><button onclick="cal()"> Click Here!</button>
</div>
</body>
【问题讨论】:
-
"Uncaught TypeError: pattern.split is not a function" 数组没有拆分方法。
console.log(pattern) -
match返回一个数组,而不是字符串,并且数组没有split函数。 -
按 [F12] 打开开发者控制台。运行你的代码。错误消息显示“TypeError: pattern.split is not a function ... lineno: 16” - 现在您在该行之前放置了
console.log(pattern);。它打印Array [ "01:02:03" ]。现在您检查文档,发现数组没有split方法,但string有。字符串是第一个数组元素,您可以通过pattern[0].split(...)或var [pattern] = text.match(...)访问它
标签: javascript