Ich versuche, Javascript-Code zu schreiben, um sicherzustellen, dass ein Feld in meinem Formular die ersten 2 Zeichen als Alphabete (US) enthält und die restlichen 8 numerisch sind.

Die Summe muss 10 sein, und wenn einer von diesen nicht zufrieden ist, sollte ich eine Warnbox werfen.

Ich suche jetzt nach Zahlen, aber ich weiß nicht, wie ich die Suche nach Alphabeten und Zahlen im selben Feld kombinieren soll.

Hier ist mein Code zum Überprüfen auf Zahlen.

Bitte hilf mir! sid ist mein Feldname.

// only allow numbers to be entered
var checkOK = "0123456789";
var checkStr = document.forms[0].sid.value;
var allValid = true;
var allNum = "";

for (i = 0; i < checkStr.length; i++)
{
    ch = checkStr.charAt(i);
    for (j = 0; j < checkOK.length; j++)
        if (ch == checkOK.charAt(j))
            break;

    if (j == checkOK.length)
    {
        allValid = false;
        break;
        if (ch != ",")
            allNum += ch;
    }
    if (!allValid)
    {
        alert("Please enter only 8 numeric characters in the \"sid\" field.");
        return (false);
    }
}    
1
Nikhil Surendran 10 Okt. 2012 im 13:34

4 Antworten

Beste Antwort

Ein einzelner regulärer Ausdruck führt diese Prüfung problemlos durch:

   /^[a-zA-Z]{2}\d{8}$/

/ ^ Match Anfang der Zeichenfolge

[a-zA-Z] {2} stimmen genau mit 2 alphabetischen Zeichen überein

\ d {8} entspricht genau 8 Ziffern

$ / match Ende der Zeichenfolge

Verwenden Sie wie folgt:

 /^[a-zA-Z]{2}\d{8}$/.test (str)   // Returns true or false
5
HBP 10 Okt. 2012 im 09:41

/^([a-zA-Z]{2}\d{8})$/; sollte nach 2 Zeichen und dann nach 8 Dezimalstellen suchen.

0
Priyank Patel 10 Okt. 2012 im 09:44

Einfacher regulärer Ausdruck, prüft auf 2 Zeichen + 8 Ziffern

var checkStr = document.forms[0].sid.value;
if (checkStr.match(/\b[A-z]{2}[0-9]{8}\b/) === null) {
    alert("Please enter only 8 numeric characters in the \"sid\" field.");
    return (false);
}
0
st3inn 10 Okt. 2012 im 09:44

Sie können Regexp verwenden. jsfiddle

var regExp = /[a-z]{2}[0-9]{8}/i;

var text = 'ab12345678'; 
if(text .replace(/[a-z]{2}[0-9]{8}/i, "").length > 0){
    alert("Please enter only 8 numeric characters in the \"sid\" field.");
    return (false);
} 
0
Anoop 10 Okt. 2012 im 09:43