parseInt()有时返回NaN

时间:2014-08-05 13:56:27

标签: google-apps-script

我正在尝试从表单中解析DateItem响应,使其符合“M / D / YYYY”形式(即2014-08-05将转换为2014年8月5日)。由于ItemResponse是String类型,我编写了以下内容来操作它:

s = s.replace(/(\d{0,4})\-(\d{0,2})\-(\d{0,4})/,'$2/$3/$1');

var arr = s.split('/');

return parseInt(arr[0]) + '/' + parseInt(arr[1]) + '/' + parseInt(arr[2]);

parseInt(arr[0])几天前随机开始回归NaN。当需要解析时,arr[0]不为null,而且是字符串类型。只有数组中的那个值才有问题。我解析单个数字删除前面的0。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

Why does parseInt return NAN for "08" string and return 7 for "07" string?

基本上,前导0表示它是八进制数。 8不是有效的八进制数字,因此是NaN。使用parseint(arr [0],10)指定基数。你可能想对arr [1]做同样的事情。

答案 1 :(得分:0)

您可能希望使用Utilities.formatDate(),这将以您选择的格式返回格式化的日期字符串。

对于你的例子:

var formattedDate = Utilities.formatDate(new Date(formDataDateValue), Session.getScriptTimeZone(), "M/d/yyyy");