Date.js parseExact与法国文化

时间:2012-03-09 11:00:48

标签: javascript parsing date datejs

我在svn trunk(rev 191)中使用了date-fr-FR.js的最后一个版本。 解析似乎在几天和几个月都失败了。

Date.parse("9 3 2012")

没问题,但是:

Date.parse("vendredi 9 mars 2012")

返回 null

parseExact也无济于事:

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

返回null。

有人遇到过类似的问题吗?是否有更新版本的本地化文件?

如果没有人能找到解决方案,也许你可以推荐我另一个javascript日期库。

1 个答案:

答案 0 :(得分:2)

French culture file fr-FR:js似乎有一些错误。例如,星期五的正则表达式显示:

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

这意味着“ve”或“ven”或“ven”。或“ven.dredi”被认为是星期五,但不是“vendredi”。更确切地说,上面的正则表达式匹配“vend”并使“redi”无法匹配,从而使解析器失败。一周中的所有日子和大多数月份都存在同样的错误。

要解决此问题,您可以将上述正则表达式替换为:

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

添加备用“|”在任何字符“。”之后。我也逃脱了点,因为它不应该与“任何”字符匹配,而只是匹配点虽然这不会使你的测试用例失败。