Super,
jednak jak zwykle słabo sprecyzowałem treść postu,
więc chodzi mi o sprawdzenie czy w wybranym ciągu np:
"P@ssw0rd_1trzy_wystapienia2_cyfry" występuje Minimum 2 cyfry ale nie więcej niż 4 cyfry na dowolnej pozycji.
Niestety "darko" wyrażenie regularne
"^[0-9]{2,4}$" nie spełni tego warunku dopasowania :/
natomiast wyrażenie jakie ja podałem tj.
([^0-9]*[0-9][^0-9]*){2,4}działa poprawnie w testerze:
http://www.regexplanet.com/simple/index.htmlponieważ jak śmiem przypuszczać użyta została funkcja z PHP "preg_mach()", która zwraca ilość dopasowań -no chyba że się mylę

?
choć z drugiej strony jeśli wywołuję w JS warunek, po każdym dopisaniu znaku w polu input:
var string = "P@ssw0rd_1trzy_wystapienia2_cyfry";
var regex = new RegEgx('/([^0-9]*[0-9][^0-9]*){2,4}/');
if(!regex.test(string)){
alert('Hasło musi posiadać od: 2 do: 4 cyfr');
return false;
}
to teoretycznie powinno działać OK, ale nie działa, ten JS powoli wykańcza mnie

wydaje mi się że sama funkcja "regex.
test(string)", nie załatwi mi sprawy :/
OK, coś tam sobie wymyśliłem,
jak by ktoś szukał rozwiązania to podaję wskazówkę, mianowicie funkcja match(), zwraca tablice wystąpień podciągu zgodnego z wyrażeniem, sprawdzamy rozmiar tablicy i mamy ilość wystąpień podciągu w ciągu, czyli w przykładzie cyferek.
wyrażenie:
var regex_digit = /[0-9]/g;
warunek:
var array_digit = haslo.match(regex_digit);
if(array_digit.length < min_digit || array_digit.length > max_digit){
alert('Hasło może zawierać od:'+min_digit+' do:'+max_digit+' cyfr');
return false;
}