Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript parseInt不处理Angularjs控制器内根据spitted日期创建的数组中的数据_Javascript_Angularjs_Parseint - Fatal编程技术网

Javascript parseInt不处理Angularjs控制器内根据spitted日期创建的数组中的数据

Javascript parseInt不处理Angularjs控制器内根据spitted日期创建的数组中的数据,javascript,angularjs,parseint,Javascript,Angularjs,Parseint,我有一个日期,我正在转换为LocaleDateString,然后将其拆分为angulrajs控制器内的一个数组。当我尝试将数组中的元素转换为int时,我得到NaN。数组中的字符是数字,但解析不起作用 如何正确解析这些数据 代码: 我希望能够转换为字符串“月”“日”“年”。您所依赖的,这取决于实现: 此函数返回一个字符串值。字符串的内容是 依赖于实现 问题是,浏览器返回的字符串中包含一些 请看区别: var str1 = "6", // "\u0036" <-- OK

我有一个日期,我正在转换为LocaleDateString,然后将其拆分为angulrajs控制器内的一个数组。当我尝试将数组中的元素转换为int时,我得到NaN。数组中的字符是数字,但解析不起作用

如何正确解析这些数据

代码:

我希望能够转换为字符串“月”“日”“年”。

您所依赖的,这取决于实现:

此函数返回一个字符串值。字符串的内容是 依赖于实现

问题是,浏览器返回的字符串中包含一些

请看区别:

var str1 = "6", // "\u0036"             <-- OK
    str2 = "‎6‎"; // "\u200e\u0036\u200e" <-- Your "corrupted" string
parseInt(str1); // 6
parseInt(str2); // NaN

因此,您不应该信任该方法返回的值。取而代之的是,使用date方法来获取日期、月份和年份。

我试用了您的代码,它似乎对我很有效。对于dateLocal,我只是将您的值替换为var dateLocal=new Date.toLocaleDateString;因为我不知道从你的作用域加载了什么值。当我这样做时,代码加载得很好,因此您可能需要再次检查从作用域加载的变量的性质。

这并不能回答为什么您的代码中会出现NaN,但是您可以直接使用,day of month,和。

记住在parseInt中使用基数,例如:parseInt val,10@Devsined您在IE11中看到这个问题了吗?您是否在其他浏览器中看到它?可能重复:如果找到的第一个字符不是数字,parseInt将返回NaN。所以你必须用正则表达式修剪非数字。@Oriol你怎么知道它是从左到右的标记?@tavnab OP说有这个‎6.‎/‎5.‎/‎2015此字符串包含那些U+200E。@很抱歉,Oriol在OP的示例代码/注释中没有看到它,并且检查此页面的源代码只显示6/5/2015,HTML中没有RTL标记。你能告诉我你是怎么注意到这两个字的吗?谢谢@Oriol;对于未来的读者来说,这显然是一个问题。这个解决方案的问题是,我得到了时区的偏移量,后来我无法与其他datesApologies进行比较,不清楚为什么在您的示例中使用这些函数不起作用。在$scope.startDate上调用上述函数的结果相当于获取字符串&解析它,但更短。如果还需要提取时区,可以使用。如果我误解了你的用例,你能澄清一下吗?
var str1 = "6", // "\u0036"             <-- OK
    str2 = "‎6‎"; // "\u200e\u0036\u200e" <-- Your "corrupted" string
parseInt(str1); // 6
parseInt(str2); // NaN