短划线或正斜杠的正则表达式日期格式



我有一个正则表达式,它可以查找以下任何格式的字符串模式

28.05.2018 SB RS CS  
28-05-2018 SB RS CS  
28/05/2018 SB RS CS

正则表达式将第一个示例与日期中的句号匹配,但与第二个和第三个示例与日期中的短划线和正斜杠不匹配。

任何人都可以建议如何更正正则表达式以使其与破折号或正斜杠匹配吗?

任何帮助将不胜感激。

该脚本是Adobe JavaScript的一部分。

var re = new RegExp(
"\d{1,2}[\-\/\.]\d{1,2}[\-\/\.]\d{2,4}\s([A-Z]{2,5})\s([A-Z]{2,5})\s([A-Z]{2,5})"
);

您可以使用以下正则表达式:

d{1,2}[/.-]d{1,2}[/.-]d{2,4}s([A-Z]{2,5})s([A-Z]{2,5})s([A-Z]{2,5})

演示

笔记:

你真的很接近,在字符类中,你不需要转义破折号(如果你把它放在类定义的末尾(和点。

console.log("test 28.05.2018 SB RS CS test 28-05-2018 SB RS CS abc 28/05/2018 SB RS CS 123".match(/d{1,2}[/.-]d{1,2}[/.-]d{2,4}s([A-Z]{2,5})s([A-Z]{2,5})s([A-Z]{2,5})/g));

String formateDateOfBirth(String? dob) {
return '$dob'.replaceAllMapped(
RegExp(r'(d{2})(d{2})'), (Match m) => '${m[1]}/${m[2]}');
}

这将提供月份和日期的"mm/dd"格式。 例如:01/25 您还可以根据需要自定义MM/dd/yyyy或任何yyyy-MM-dd

最新更新