Я пытаюсь протестировать входную строку формата AWT = 10: 15; на основе этого регулярного выражения, которое я написал: (([AWT]\w\S=)?(\d{0,9}:)?(\d{0,9});)
.
Проблема 1: Я получаю эту ошибку: Uncaught TypeError: Cannot read property '0' of undefined
, когда пытаюсь сопоставить строку с регулярным выражением.
Проблема 2: Строка кажется действительной даже после того, как я ввожу это: AWT = 10: 15; 12 , чего не должно быть.
Вот мой код:
var reg = new RegExp('(([AWT]\w\S=)?(\d{0,9}:)?(\d{0,9});)');
var x = $('td').find('.awt')[0].value;
console.log(x); // AWT=10:15;
console.log(String(x).match(reg)); // [";", ";", undefined, undefined, "", index: 9, input: "AWT=10:15;", groups: undefined]
if(String(x).match(reg)){
console.log("valid");
}else{
console.log("Invalid")
}
Мне было интересно, может ли кто-нибудь помочь мне определить правильное регулярное выражение для строки.
PS: строка должна быть в точном формате: (AWT = [0,9]: [0,9];) .