javascript date from controller
问题出现的原因是在从字符串中提取数字时使用了正则表达式,但没有考虑到字符串中可能包含多个数字的情况。因此,使用`match()`方法仅返回了第一个匹配的数字。
解决方法是使用全局匹配的正则表达式,以便提取所有数字。可以使用`g`修饰符来实现全局匹配。
修改后的代码如下:
function getDate(str){ // extract numbers from string using regex var numbers = str.match(/\d+/g); // turn first number into int var intNum = parseInt(numbers[0]); // turn int into date return new Date(intNum); } var str = '/Date(1451599200000)/'; alert(getDate(str));
通过对正则表达式的修改,我们可以提取出字符串中的所有数字,并将第一个数字转换为整数。然后,我们可以使用`new Date()`方法将整数转换为日期对象。