gpt4 book ai didi

javascript - JS 正则表达式 : match one or multiple occurences

转载 作者:行者123 更新时间:2023-12-03 11:50:42 24 4
gpt4 key购买 nike

最终,我需要使用正则表达式来匹配日期字符串的多个或单个出现。

对于“12-2-2014”的单一出现,正则表达式 /(\d+[-/\.]\d+[-/\.]\d+)/ 即可。

对于测试“12-2-2014 22-05-2033”,它将失败。当全局标志处于事件状态时,它将测试为正,但我最近经历了惨痛的教训,当使用全局标志时,我无法对我的正则表达式进行单元测试。

感谢任何帮助...

编辑:我现在正在使用 QUnit 进行测试。一个简单的测试用例是:

 test("REGEX TEST", function () {
var dates = ['12-2-2014', '14-5-2014'],
regex = /(\d+[-/\.]\d+[-/\.]\d+)/g;
ok(regex.test(dates.join(' ')));
ok(regex.test(dates.join(' ')));
ok(regex.test(dates.join(' ')));
ok(regex.test(dates.join(' ')));
});

-> 每次评估我都得到不同的结果...

最佳答案

我已经查看了您的其他问题,这是我的解决方案,可以让您保留您的旗帜。

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

以下是我提出的更多测试:

test("Invalid dates should be rejected", function () {
ok("10#12#2014".match(/(\d+[-/\.]\d+[-/\.]\d+)/g).length == 0, "Date is not parsed correctly: 10#12#2014");
ok("September".match(/(\d+[-/\.]\d+[-/\.]\d+)/g).length == 0, "Date is not parsed correctly: September");
});


test("Multiple Dates should be found", function () {
ok("10.12.2014 11.13.2015".match(/(\d+[-/\.]\d+[-/\.]\d+)/g).length == 2, "Date is not parsed correctly: 10.12.2014 11.13.2015");
});

关于javascript - JS 正则表达式 : match one or multiple occurences,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25851583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com