2017-03-24 4 views
1

ich habe diesen regulären Ausdruck in diesem Code:JavaScript regulärer Ausdruck Test Buchstaben- und Zahlen existens

function validateUser() { 
 
    var e = /^[a-zA-Z](?=.*[0-9]).*$/; 
 
    else(e.test(document.getElementById("username")) == false){ 
 
     document.getElementById("s").innerHTML=("error"); 
 
    } 
 
    else{ 
 
     document.getElementById("s").innerHTML=("ok"); 
 
    }

ich will es testen, ob der String mit einem Buchstaben beginnt und mindestens 1 Nummer aber selbst wenn ich eine Zeichenfolge mit einer Nummer eingeben, bekomme ich immer noch die Fehlermeldung msg!

+0

entfernen '+' von der zweiten. Was ist das Problem, das Sie haben? –

+0

Probieren Sie '/^[a-z] + [0-9] [0-9a-z] * $/i.test (s)', wenn nur alphanumerische Zeichenfolgen übereinstimmen müssen. –

+0

'else if' – sln

Antwort

0

Versuchen Sie Folgendes:

function validateUser(thatObj) { 
 
var patt = /^[a-zA-Z](?=.*[0-9]).*$/; 
 
    if(patt.test(thatObj.value) == false){ 
 
     document.getElementById("s").innerHTML=("error"); 
 
    } 
 
    else{ 
 
     document.getElementById("s").innerHTML=("ok"); 
 
    } 
 
}
User Name: <input type="text" id="username" oninput="validateUser(this)"/><br> 
 
Status: <span id="s"></span>

+0

es funktioniert jetzt, thnks – scofildo

+0

Gern geschehen. – Mamun

0

Im Folgenden wird die vollständige Zeichenfolge auf der Grundlage Ihrer angegebenen Kriterien prüfen:

/^[a-zA-Z]+[0-9]+/ 

Erläuterung:

^Spiel Beginn der Zeichenfolge

[a-zA-Z]+Spiel eines oder mehr beliebiger Buchstabe des Alphabets

[0-9]+Spiel ein oder mehrere beliebige numerische Ziffer

+0

Nein, es wird nicht die * vollständige Zeichenfolge * getestet, da Sie nur den führenden Anker im Muster haben. –

+0

Ich bin kein Regex-Experte, aber mein Verständnis ist die Lösung, die ich zur Verfügung gestellt habe, wird die vollständige Zeichenfolge überprüfen, die an sie geliefert wird. Strings werden nicht unbedingt durch Zeilenumbrüche abgeschlossen, nein? – alaric

+0

@ alaric- "Nein", aber unwahrscheinlich, dass ein Benutzername einen Zeilenumbruch enthalten wird. – RobG

1
/^[a-zA-Z].*\d.*$/ 

Wird eine beliebige Zeichenfolge zu, die mit einem Buchstaben beginnt und mindestens 1 Stelle enthält.

Sehen Sie es auf regex101

+0

Ich bekomme immer noch die Fehlermeldung, auch wenn die eingegebene Zeichenfolge korrekt ist scofildo

+0

@ scofildo-dann ist Ihr Fehler woanders. Der reguläre Ausdruck entspricht Ihrer Anforderung. – RobG

0

Sie einen Bereich Schließung Syntax fehlt und eine bedingte ist beschädigt.
Verifizierter fehlender Abschluss ist der Fehler wird generiert auf Zeile 20 oder dort abouts.

Es sollte

sein
function validateUser() { // <- Begin function block 
    var e = /^[a-zA-Z](?=.*[0-9]).*$/; 
    // else <- if what ? 
    if(e.test(document.getElementById("username")) == false){ 
     document.getElementById("s").innerHTML=("error"); 
    } 
    else{ 
     document.getElementById("s").innerHTML=("ok"); 
    } 
} // <- function block closure 
Verwandte Themen