Не могу разобрать дату в TamperMonkey

У меня есть строка, которая почти является правильно отформатированной датой: "Fri Sep 21 201800:34:27 GMT". почти потому, что между четырьмя цифрами года и началом времени нет пробела. Это должно легко разбивать и анализировать с помощью чего-то вроде этого:

var text = "Fri Sep 21 201800:34:27 GMT";
var colonAt = text.indexOf(':')
var date = [text.substr(0, colonAt-2), text.substr(colonAt-2)].join(' ')

Это правильно возвращает строку, похожую на "Fri Sep 21 2018 00:34:27 GMT", которая должна быть допустимой. Если я передам это Date.parse в своей консоли, это работает. Но если я передам эту строку Date.parse в скрипте TamperMonkey, я получу NaN. Я туплю, или есть какой-то трюк для разбора дат в скриптах TamperMonkey?


person g.d.d.c    schedule 27.09.2018    source источник


Ответы (1)


Я нашел это. Оказывается, перед часовым поясом есть неразрывный пробел, когда я извлекаю значение программно. Добавляя .replace("\u00A0", " ") после .join(" "), решает проблему.

Для тех, кто любопытен, я нашел его с помощью encodeURI(text). Это выплевывает %C2%A0 между секундами и часовым поясом. Несколько поисков позже, и у меня было объяснение и способ заставить его работать.

person g.d.d.c    schedule 27.09.2018
comment
Просто из любопытства, что заставило вас задуматься о том, что это может быть неразрывный пробел? - person jhpratt; 28.09.2018
comment
Предчувствие, что это должен был быть непечатаемый символ, который я не улавливал, когда копировал/вставлял значение в свою консоль для тестирования. - person g.d.d.c; 28.09.2018