2016-02-02 2 views
1

Мне нужно создать регулярное выражение для проверки строки билета в правильном формате.Regex in angularjs

формат билета:

SFHD00002523003 

Она начинается с четырех алфавитов и заканчивается 12 цифровых символов.

Это мой код в моем угловом контроллере:

var pattern = new RegExp('[A-Z]{4}\\d{12}$'); 
console.log(pattern.test('SFHD00002523003'); 

К сожалению, она возвращается ложь для правильной строки, тоже.

+0

Попробуйте 'вар шаблон =/^ [AZ] {4} \ d {12} $ /;' –

+0

Если я не забыл, как считать, это не те * 12 * цифры в вашей тестовой строке ... ಠ_ಠ – deceze

+0

Спасибо wiktor он работает –

ответ

1

Нужна двойная обратная косая черта вместо одиночной. как: \\d вместо \d в вашем выражении

var pattern= new RegExp('([A-Z]){4}\\d{12}'); 

и ваша строка имеет 11 цифровых символов не 12

1

Вы забыли начало строки якоря ^, чтобы убедиться, что вы только соответствуют 16 строку символов. Если вы не используете его, вы получите совпадение внутри строки символов 17 +, которая заканчивается вашим шаблоном.

Таким образом, использовать

var pattern = /^[A-Z]{4}\d{12}$/; 
      ^
+0

Пожалуйста, примите, потому что он работает для вас. –