我想将两个字符串转换为int以便能够比较它们。
字符串是计时器,所以我基本上想要转换如下:
timer1 = 00:00:14 // 14
timer2 = 00:00:25 // 25
答案 0 :(得分:1)
以下代码段通过匹配:
所有出现的正则表达式删除所有分号,并使用parseInt
将其转换为数字。如果字符串timer1
无效,则NaN
将成为结果。
numeric_timer1 = parseInt(timer1.replace(/:/g, ""), 10)
这满足了“将字符串转换为int并忽略冒号”的字面请求。
如果您有兴趣将hour:minute:seconds
转换为秒,请使用timer1.split(":")
方法拆分字符串并应用数学。
答案 1 :(得分:1)
第一步是删除冒号:
var str1 = "00:00:14";
str1 = str1.replace (/:/g, "");
第二步是取剩余数字并将其变成一个数字。对于像“000014”这样的字符串,parseInt
将返回0,因此您可以使用parseFloat:
var result = parseFloat(str1);
祝你好运!
更新:我没有考虑基础10问题......如果您只是想比较哪个时间更长,但是要对真实的次进行更“适当”的比较您可能希望先将两者都转换为正式Date
个对象。
答案 2 :(得分:1)
您可以这样做:
var s = '00:01:05';
var seg = s.split(':');
var hours = parseInt(seg[0]);
var minutes = parseInt(seg[1]);
var seconds = parseInt(seg[2]);
var total = (hours * 3600) + (minutes * 60) + seconds;
window.alert(total);
答案 3 :(得分:1)
尝试使用regexps和隐式字符串 - >数字转换(例如“7”* 1 = 7)
function timeToSeconds(s)
{
var m = s.match(/(\d{2}):(\d{2}):(\d{2})/);
/* capture time fields in HH:MM:SS format */
if (m == null)
return null;
else
return m[1]*3600 + m[2]*60 + m[3]*1;
}
答案 4 :(得分:0)
您可以将这些字符串作为字符串进行比较,如果这些字段确实始终是2位数段,那么事情应该可以正常工作。