我正在使用jqunit的辅助工具处理有关reular表达式的测试案例:
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上执行它们都是真的。有迹象表明这种行为是从何而来?
发布于 2014-09-04 13:53:34
当您只使用g
时,不要在regex中使用test
标志:这是没有意义的,更重要的是,它使它成为一个迭代器,其结果随每次对test
的调用而发生变化,我想在jqunit中使用文字正则表达式不止一次。
变化
/(\d+[-/\.]\d+[-/\.]\d+)/g
至
/(\d+[-/\.]\d+[-/\.]\d+)/
https://stackoverflow.com/questions/25667268
复制相似问题