JavaScript regex help - PullRequest
       3

JavaScript regex help

0 голосов
/ 03 февраля 2010

Я получаю строки со значениями, такими как /Date(1)/ и /Date(-99999)/. Цифры имеют переменную длину.

Не было бы регулярное выражение просто так: ^/Date\(d+\)/$

Ответы [ 3 ]

3 голосов
/ 03 февраля 2010

Нет, ваше регулярное выражение пропускает дополнительный минус перед цифрами (\d). Вам также нужно экранировать /, поскольку они также являются разделителями для регулярных выражений. Попробуйте это регулярное выражение:

^/Date\(-?\d+\)/$

Либо в конструкторе RegExp:

new RegExp("^/Date\\(-?\\d+\\)/$")

Или буквально:

/^\/Date\(-?\d+\)\/$
0 голосов
/ 03 февраля 2010

Похоже, что вы получаете значения даты JSON, сериализованные ASP .NET , косые черты включены в строки, для захвата метки времени вы можете просто сопоставить необязательный знак минуса и любую последовательность цифр:

var date = "\/Date(1240718400000)\/";
var timeStamp = date.match(/-?\d+/)[0]; // 1240718400000;

Или более ограничительный:

var timeStamp = date.match(/\/Date\((-?\d+)\)\//)[1]; 
0 голосов
/ 03 февраля 2010

Не совсем. Вы не допускаете возможность использования дефиса, и ваши косые черты немного шаткие.

/^Date\(-?\d+\)$/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...