Это должно сделать это ...
^(?=.*[0-9].*[0-9])[a-zA-Z0-9]{8,}$
Единственное изменение, которое я сделал, это добавление этого (?=.*[0-9].*[0-9])
, который является позитивным взглядом, который попытается найти первые 2 цифры в пароле.Если оно выполнено, то регулярное выражение будет работать как обычно.
Теперь я просто подумал, что хотел бы указать, что ваше регулярное выражение будет запрещать специальные символы (знаки пунктуации и тому подобное).На практике некоторым людям нравится вводить странные символы, подобные этим, в свои пароли.
Таким образом, вы можете рассмотреть что-то более похожее на это ...
^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).{8,}$
Это позволит использовать специальные символы, одновременно обеспечиваяв пароле существует как минимум одна заглавная буква, одна строчная буква и одна цифра.Это всего лишь пример регулярного выражения с надежным паролем, которое я написал некоторое время назад, и вы, конечно, можете немного ослабить эти ограничения, если захотите.