2016-04-21 6 views
1

Я пытаюсь узнать, сколько цифр в строке, которая по сути напоминает пароль.regex: минимальное общее количество цифр в строке

Теперь у меня есть это регулярное выражение:

^(?=.*[0-9]{3,})([a-zA-Z0-9_/+*.-]{6,})$ 

Он отлично работает, когда их 3 цифры в строке, но не тогда, когда они разделены во всей строке.

мне нужно, чтобы иметь возможность знать, если есть 3 цифры в строках, как те:

h123dasd 1hkh/23jd 1gvbn/* 2fefse-

Что я могу сделать?

+0

Посмотрите [этот вопрос] (http://stackoverflow.com/questions/15341016/regex-to-check-for-at-least-3-characters). –

ответ

3

Вы можете использовать это регулярное выражение:

/^(?=(?:\D*\d){3,})[a-zA-Z0-9_/+*.-]{6,}$/ 

Это будет обеспечивать 3 цифры в вашем входе, которые могут или не могут быть последовательными.

RegEx Demo

+1

Это умный и эффективный – rock321987

+1

Thx много для этого :) – rXp

0

Нет необходимости в такой сложной регулярное выражение IMO - просто извлечь цифры из строки, CONCAT матчей, а затем проверить длину. Что-то вроде:

str.match(/\d+/g).reduce((p, c) => p + c).length > 3; 

DEMO

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

  • Нет связанных вопросов^_^