5

chcę potwierdzić moje pole tekstowe poniżej:
1. alfanumerycznych
2. I wszystkie znaki specjalne
nie jestem dobry w regex może ktoś mi pomóc tworzenie wyrażeń regularnych dla powyższych rzeczy.Walidacja alfanumeryczny ze wszystkich znaków specjalnych

+0

mój zły, nie przeczytał questu jon poprawnie. Czy chcesz mieć różne filtry dla znaków alfanumerycznych i innych niż alfanumeryczne? –

Odpowiedz

6

Struny alfanumeryczne są dopasowane tak:

^[a-zA-Z0-9]+$ 

Dopasowuje dowolny ciąg znaków, który zawiera wyłącznie z wymienionych znaków i długości co najmniej jeden znak.

Ze specjalnymi znakami działałby w ten sam sposób.

Ale co uważasz za specjalny char?

Dla @ # $%^& *() + = - [] \ ';,/{} | ":!.? <> - jest zestaw specjalnych znaków, wyrażenie regularne będzie wyglądać następująco:

^[@!#\$\^%&*()+=\-\[\]\\\';,\.\/\{\}\|\":<>\? ]+$ 

Ponownie, wszystkie znaki są dozwolone na liście. te stosowane w regexes jako poleceń lub kwantyfikatorów muszą być uciekł z \.

+0

może to być lista znaków specjalnych. ! @ # $%^& *() + = - [] \ ';../{} | ": <>? – Abbas

+0

patrz edytuj powyżej. –

+0

możesz scalić znaki alfanumeryczne i znaki specjalne w jednym regex, próbowałem tego (/^[a-zA-Z_0-9 @! # \ $ \ ^% & *() + = \ - \ [\] \\\ ';, \. \/\ {\} \ | \ ": <> \?] + $ /) ale nie działa ... – Abbas

3

to zrobi to, co chcesz.

function validate() 
{ 
     var val = <my string>; 

     if (val == '') 
      alert('String is empty!'); 

     else if (!val.match(/[_\W]/)) 
      alert('String contains only A-Z a-z 0-9 characters!'); 

     else if (!val.match(/^\w[@!#\$\^%&*()+=\-\[\]\\\';,\.\/\{\}\|\":<>\?]/)) 
      alert('String contains your predefined characters only!'); 
} 

Należy zauważyć, że oba wyrażenia regularne działają na zasadzie podwójnej negacji, zwracając wartość false w pierwszym dopasowaniu niedozwolonego znaku w celu uzyskania najlepszej wydajności. Pierwszym z nich jest negacja zestawu znaków \W, który jest zaprzeczeniem \w. Druga to negacja ! negacji ^ z predefiniowanych znaków (\w + predefiniowane znaki). Odpowiedz, jeśli chcesz wyjaśnienia lub modyfikacje.

EDYTOWANIE Oto wyrażenie regularne pasujące, jeśli ciąg ma co najmniej jeden znak specjalny i znaki alfanumeryczne.

if (val.match(/[^_\W]/) && val.match(/[@!#\$\^%&*()+=\-\[\]\\\';,\.\/\{\}\|\":<>\? ]/)) 
    alert('String contains both alpha-numeric and your pre-defined special characters!'); 

Czy wszystko jest w porządku lub potrzebujesz go w jednym schemacie?

EDIT to zrobi to w jednym regex:

if (val.match(/(?=.*[@!#\$\^%&*()+=\-\[\]\\\';,\.\/\{\}\|\":<>\? ]+?).*[^_\W]+?.*/) 
    alert('String contains both alpha-numeric and your pre-defined special characters!'); 
+0

dzięki niesamowite, ale czy mogę uzyskać pojedyncze wyrażenie regularne, co się stanie, jeśli najpierw sprawdzę alfanumeryczne i specjalne znaki, czy pole zawiera znak specjalny, to nie przechodzi testu alfanumerycznego i rzuca na inny warunek, chcę pole, które POWINIEN mieć znaki alfanumeryczne, a także znaki specjalne, co najmniej jeden znak specjalny, w przeciwnym razie powinien przekazać komunikat: – Abbas

+0

OK, zobacz, więc chcesz wyrażenie regularne do sprawdzenia, czy twój ciąg ma co najmniej 1 znak alfanumeryczny ter i co najmniej 1 niealfaeryczny charakter? –

+0

nie działa z ograniczeniem alfa-numerycznym i specjalnym znakiem, próbowałem - aabb # które nie mogą być dozwolone –

1

można spróbować to dla wszystkich znaków specjalnych

/^[0-9a-zA-Z\s\r\[email protected]!#\$\^%&*()+=\-\[\]\\\';,\.\/\{\}\|\":<>\?]+$/; 
0

Jeśli chcesz zezwolić na szczególne znaki specjalne alfa numeryczne następnie następujące polecenie regexp zadziała. Możesz dostosować, dopuszczalny zakres znaków specjalnych zgodnie z wymaganiami. W przypadku znaków ewakuacyjnych musisz wstawić pomiędzy \ \. W poniższym przykładzie \ - \ zezwala na "-".

/^[a-zA-Z0-9?=.*[email protected]#$%^&*_\-\s]+$/ 

Mam nadzieję, że to ci pomoże :).

0

Dla alfanumerycznych i wszystkie znaki specjalne Walidacja

można użyć w jednym regex

ta zwróci true, jeżeli masz co najmniej 8 znaków przynajmniej 1 Wielkie alfabet, 1 małe litery alfabetu, 1 numer i 1 Znak specjalny

NSString *alphaNumberandSpecialRegex [email protected]"^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#[email protected]$%^&*-]).{8,}$"; 
     NSPredicate *alphaNumberTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", alphaNumberandSpecialRegex]; 

     return [alphaNumberTest evaluateWithObject:@"yourString"]; 

Minimum 8 znaków przynajmniej 1 alfabetu i 1 Numer:

NSString *alphaNumberandSpecialRegex [email protected]""^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$""; 
      NSPredicate *alphaNumberTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", alphaNumberandSpecialRegex]; 

      return [alphaNumberTest evaluateWithObject:@"yourString"]; 

Minimum 8 znaków przynajmniej 1 alfabet, 1 Liczba i 1 znak specjalny:

NSString *alphaNumberandSpecialRegex [email protected]"^(?=.*[A-Za-z])(?=.*\d)(?=.*[[email protected]$!%*#?&])[A-Za-z\[email protected]$!%*#?&]{8,}$"; 
       NSPredicate *alphaNumberTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", alphaNumberandSpecialRegex]; 

       return [alphaNumberTest evaluateWithObject:@"yourString"]; 

Minimum 8 znaków przynajmniej 1 Wielkie alfabet, 1 małe litery alfabetu i 1 Numer:

NSString *alphaNumberandSpecialRegex [email protected]"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$"; 
        NSPredicate *alphaNumberTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", alphaNumberandSpecialRegex]; 

        return [alphaNumberTest evaluateWithObject:@"yourString"]; 

Minimalne 8 i Maksymalnie 10 znaków co najmniej 1 Wielkie litery, 1 małe litery, 1 cyfra i 1 Znak specjalny:

NSString *alphaNumberandSpecialRegex [email protected]"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[[email protected]$!%*?&])[A-Za-z\[email protected]$!%*?&]{8,10}"; 
         NSPredicate *alphaNumberTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", alphaNumberandSpecialRegex]; 

         return [alphaNumberTest evaluateWithObject:@"yourString"]; 
Powiązane problemy