5

voglio convalidare il mio campo di testo con qui sotto:
1. alfanumerici
2. E tutti i caratteri speciali
Io non sono bravo in regex qualcuno mi può dare una mano creando una regex per le cose di cui sopra.Convalida alfanumeriche con tutti i personaggi speciali

+0

mio male, non ho letto la ricerca ione correttamente. Vuoi filtri diversi per caratteri alfanumerici e non alfanumerici? –

risposta

6

stringhe alfanumeriche sono abbinati in questo modo:

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

corrisponde a qualsiasi stringa che contiene solo i caratteri elencati ed è lungo almeno un carattere.

Con caratteri speciali, funzionerebbe allo stesso modo.

Ma cosa consideri essere un personaggio speciale?

Per @ # $%^& *() + = - [] \ ';,/{} | ":!.? <> - essendo l'insieme dei caratteri speciali, la regex sarebbe simile a questa:

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

Anche in questo caso, tutti i caratteri consentiti sono elencati. quelli utilizzati all'interno di espressioni regolari come comandi o quantificatori devono essere sfuggito con un \.

+0

questa potrebbe essere la lista di caratteri speciali. ! @ # $%^& *() + = - [] \ ';,./{} | ": <>? – Abbas

+0

vedi modifica sopra. –

+0

puoi unire i caratteri alfanumerici e speciali in una regex, ho provato questo (/^[a-zA-Z_0-9 @! # \ $ \ ^% & *() + = \ - \ [\] \\\ ';, \. \/\ {\} \ | \ ": <> \?] + $ /) ma non funziona ... – Abbas

3

questo farà quello che vuoi.

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!'); 
} 

Nota che entrambe le espressioni regolari funzionano sulla doppia negazione, restituendo false nella prima corrispondenza di un carattere non valido per la migliore prestazione. La prima è la negazione del set di caratteri \W che è la negazione di \w. La seconda è una negazione ! della negazione ^ dei caratteri predefiniti (\w + caratteri predefiniti). Rispondi se vuoi qualche spiegazione o modifica.

EDIT Ecco un'espressione regolare da verificare se la stringa ha almeno un carattere speciale e caratteri alfanumerici.

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

Va bene o è necessario in un modello di regex singolo?

EDIT Questo lo farà in una sola espressione regolare:

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

grazie al suo un fantastico, ma posso ottenere in regex singolo, quello che succede è se prima controllo per il carattere alfanumerico e poi speciale, è se il campo contiene carattere speciale, quindi non passa il test alfanumerico e getta alla condizione else, voglio un campo che DOVREBBE avere caratteri alfanumerici e anche speciali. almeno un carattere speciale, altrimenti dovrebbe gettare il messaggio – Abbas

+0

OK, fammi vedere, quindi vuoi un'espressione regolare per verificare se la tua stringa ha almeno un charc alfanumerico ter e almeno un carattere non alfanumerico? –

+0

non funziona con il vincolo di caratteri alfanumerici e speciali, ho provato - aabb # che non può essere consentito –

1

Si può provare questo per tutti i caratteri speciali

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

Se desidera consentire i caratteri speciali specifici con alfa numerico allora seguendo regexp funzionerà.È possibile personalizzare, consentito range di caratteri speciali secondo le vostre esigenze. In caso di caratteri di escape è necessario mettere tra \ \. Nell'esempio sottostante \ - \ consente '-'.

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

Spero che questo ti possa aiutare :).

0

Per l'alfanumerica e tutti speciali convalida caratteri

è possibile utilizzare in un'espressione regolare

Ciò restituirà vero se si dispone Minimo 8 caratteri di almeno 1 maiuscolo alfabeto, 1 minuscolo alfabeto, 1 Numero e 1 Carattere speciale

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

     return [alphaNumberTest evaluateWithObject:@"yourString"]; 

minimo 8 caratteri di almeno 1 alfabeto e 1 Numero:

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

      return [alphaNumberTest evaluateWithObject:@"yourString"]; 

Minimo 8 caratteri di almeno 1 Alphabet, 1 Numero e 1 carattere speciale:

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"]; 

minimo 8 caratteri di almeno 1 maiuscolo alfabeto, 1 minuscolo alfabeto e 1 Numero:

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"]; 

Minimo 8 e Massimo 10 caratteri almeno 1 Alfabeto maiuscolo, 1 Alfabeto minuscolo, 1 Numero e 1 Caratteri speciali:

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"]; 
Problemi correlati