2016-06-03 2 views
0

Я использую ng-pattern для проверки поля для следующих условий. Пока что я могу проверить только два последних условия, используя следующее регулярное выражение. Когда я добавляю только числа, я хотел бы также проверить длину.ng-pattern regex для соответствия нескольким условиям

Как я могу проверить все четыре условия внутри ng-patter? Нужно ли мне окружать, а затем скобки отдельно?

data-ng-pattern="/^[0-9-\s()+]+$/" 

11111111 
111111111 
11-111-111 
111-111-111 

Я хотел бы проверить несколько условий

+0

Не могли бы вы descrive на paaterns вы хотите, чтобы соответствовать со словами? Это также может помочь вам создать регулярное выражение самостоятельно. Возможно, '^ \ d {2,3} (\ -?) \ D {3} \ 1 \ d {3} $' уже то, что вам нужно. –

ответ

0

попробовать это. он будет содержать только 10 цифр.

/^[1-9]{1}[0-9]{9}$/ 

Я не уверен, что это сработает, но я попробовал.

/^[1-9]{1}[0-9-\s()+]{10}$/gm 

Explainlation

1)^С. Соответствует началу строки или началу строки, если включен многострочный флаг (m).

2) [Набор символов. Сопоставьте любой символ в наборе. 1-9 Диапазон. Соответствует символу в диапазоне от «1» до «9» (код от 49 до 57). ]

3) {1} Квантификатор. Матч 1 предыдущего токена.

4) [Набор символов. Сопоставьте любой символ в наборе.

5) 0-9 Диапазон. Соответствует символу в диапазоне от «0» до «9» (код с кодом от 48 до 57).

6) - Персонаж. Соответствует символу «-» (код 45).

7) \ s Пробел. Соответствует любому символу пробела (пробелы, вкладки, разрывы строк).

8) (символы. Соответствует "(" символы (обугленный код 40).

9)) Характер. Соответствует символу ")" (код 41).

10) + Персонаж. Соответствует символу «+» (код 43). ]

11) {10} Квантификатор. Матч 10 предыдущего токена.

12) $ End. Соответствует концу строки или концу строки, если включен многострочный флаг (m).

13) g модификатор: глобальный. Все совпадения (не возвращаются в первом матче)

14) m модификатор: многострочный. Причины^и $, чтобы соответствовать начать/конец каждой строки (а не только начать/конец строки)

+0

Привет, спасибо за ответ. Мне нужно: с подменю 10 или 11 и без подменю 8 или 9. Нужно ли вообще отделяться? – Jimi

+0

Я отредактировал ответ. –

+0

@Jimi Используете ли вы это регулярное выражение для проверки номеров телефонов? если да, у меня есть лучшее решение –

1

Проблема с ^[1-9][0-9]{6}*$ является это недействительным регулярное выражение из {6}* и ^([^0][0-9]){6}$ является то, что она позволяет любому символ, который не является 0, а затем шесть цифр.

Использование

^[1-9][0-9]{5}$

Объяснение:

  1. ^: Начинается с якорем
  2. [1-9]: Соответствует ровно одна цифра от 1 до 9
  3. [0-9]{5}: Спички ровно пять цифр в диапазон включений 0-9
  4. $: Заканчивается якорем

Regex Visualization

Regex101 площадка

HTML5 демо:

Показать фрагмент кода

input:invalid { color: red; } <input type="text" pattern="[1-9][0-9]{5}" /> код Run snippetHide результаты

Смежные вопросы