我正在尝试匹配我的时间戳格式,但我需要检测它是否是无效格式(我需要对无效格式做些什么)
目前,我需要匹配时间戳中的空格字符:
示例:
[02:21.10,E] or [02:21.10,C#] //correct format
[02:21.10, E] or [10.21.10,E ] //incorrect format, there is a space, but i need to match it with my incorrectRegex
对于我正确的正则表达式,我使用这个正则表达式并且它是有效的:
/\[(\d\d:\d\d\.\d\d),(.*?)\]/g
对于我的错误正则表达式,我使用
/\[\d\d:\d\d\.\d\d,\s*?\]/g
但是我找不到与我的格式错误相匹配的内容
nb:我正在使用javascript
答案 0 :(得分:1)
试试这个:
\[\d\d[.:]\d\d[.:]\d\d,(?:[ ][^\]]+?|[^\]]+?[ ])\]
var re = /\[\d\d[.:]\d\d[.:]\d\d,(?:[ ][^\]]+?|[^\]]+?[ ])\]/;
console.log(re.test('[02:21.10,E]'));;
console.log(re.test('[02:21.10,C#]'));
console.log(re.test('[02:21.10, E]'));
console.log(re.test('[10.21.10,E ]'));
console.log(re.test('[10.21.10,C# ]'));
console.log(re.test('[02:54.97,C#]single[02:55.61,A ]'));

PS:我认为您的第二个无效样本[10.21.10,E ]
在前两位数后不包含:
并不是错误。我已经为第二个点/冒号应用了相同的内容。