jqunit,测试正则表达式在某些时候失败了,为什么?

时间:2014-09-04 13:52:35

标签: javascript regex unit-testing

我正在研究关于requ表达的测试用语,以及jqunit的帮助:

test("Date entry should be a Date", function () {
    ok(/(\d+[-/\.]\d+[-/\.]\d+)/g.test("10.12.2014"), "Date is not parsed correctly: 10.12.2014");
    ok(/(\d+[-/\.]\d+[-/\.]\d+)/g.test("10-12-2014"), "Date is not parsed correctly: 10-12-2014");
    ok(/(\d+[-/\.]\d+[-/\.]\d+)/g.test("10/12/2014"), "Date is not parsed correctly: 10/12/2014");
});

第二个条件失败,但是在浏览器的控制台或regexr.com上执行它们 他们都是真的。这种行为来自哪些提示?

1 个答案:

答案 0 :(得分:2)

当你只使用g时,不要在正则表达式中使用test标志:它没有意义,更重要的是,它使它成为一个迭代器,其结果随着每次调用而改变test我认为文字正则表达式在jqunit中被多次使用。

更改

/(\d+[-/\.]\d+[-/\.]\d+)/g

/(\d+[-/\.]\d+[-/\.]\d+)/