2012-03-09 3 views
1

Я использую последнюю сборку date-fr-FR.js в svn trunk (rev 191). Синтаксический разбор, кажется, терпит неудачу в названиях дней и месяцев.Date.js parseExact with french culture

Date.parse("9 3 2012") 

нормально, но:

Date.parse("vendredi 9 mars 2012") 

возвращает нуль.

parseExact не помогает:

Date.parseExact("vendredi 9 mars 2012", "dddd d MMMM yyyy") 

возвращает нуль.

Кто-нибудь сталкивался с подобной проблемой? Есть ли более новая версия локализованных файлов?

Возможно, вы можете порекомендовать мне другую библиотеку дат javascript, если никто не найдет решение.

ответ

2

У French culture file fr-FR:js появилось несколько ошибок. Например, регулярное выражение для пятницы показывает:

/^ve(n(.(dredi)?)?)?/i 

Это означает, что либо «ве», либо «Вене» или «Вене». или «ven.dredi» признаны в пятницу, но не «vendredi». Точнее, указанное выше регулярное выражение соответствует «vend» и оставляет «redi» непревзойденным, что приводит к сбою синтаксического анализатора. Такая же ошибка присутствует для всех дней недели и большинства месяцев.

Чтобы исправить это, вы могли бы заменить выше регулярное выражение:

/^ve(n(\.|(dredi)?)?)?/i 

Добавление Alternate "|" после любого символа ".". Я также избежал точки, потому что он не должен соответствовать «любому» персонажу, а просто точке, хотя это не подведет ваш тестовый пример.