尝试在IE 11中遵循以下代码。
var d= new Date();
var lt=d.toLocaleTimeString();
var localeTime= lt.split(“:”);
var str=parseInt(localeTime[0]);
parseInt返回NaN。
尝试将localeTime [0]处的值直接传递给parseInt()。它给出正确的输出,该输出是传递给parseInt()的String的数字形式。
尝试localeTime [0] === localeTime [0]的值。输出为假。
最佳答案
如果运行localeTime[0].length
,您将看到它返回4
。
localeTime[0] // "20"
localeTime[0].length // 4
x.charCodeAt(0) // 8206 -> ???
x.charCodeAt(1) // 50 -> "2" as expected
x.charCodeAt(2) // 48 -> "0" as expected
x.charCodeAt(3) // 8206 -> ???
出于某种原因,在IE中,令牌的开头和结尾还有两个additional characters。
为了使其正常工作,您需要通过删除所有非字母数字字符来规范化字符串。
parseInt(localeTime[0].replace(/\W/, '')) // returns 20 as expected