1176 Stimmen

Prüfen, ob eine Zeichenkette mit einem Regex in JS übereinstimmt

Ich möchte JavaScript verwenden (kann mit jQuery sein), um einige Client-seitige Validierung zu tun, um zu überprüfen, ob eine Zeichenfolge die Regex entspricht:

^([a-z0-9]{5,})$

Im Idealfall wäre es ein Ausdruck, der true oder false zurückgibt.

Ich bin ein JavaScript-Neuling, hat match() tun, was ich brauche? Es scheint zu prüfen, ob ein Teil einer Zeichenfolge mit einem Regex übereinstimmt, nicht die ganze Sache.

1800voto

user113716 Punkte 309387

Verwenden Sie regex.test() wenn Sie nur ein boolesches Ergebnis wollen:

console.log(/^([a-z0-9]{5,})$/.test('abc1')); // false

console.log(/^([a-z0-9]{5,})$/.test('abc12')); // true

console.log(/^([a-z0-9]{5,})$/.test('abc123')); // true

...und Sie könnten die () aus Ihrer Regexp zu entfernen, da Sie keinen Bedarf für eine Erfassung haben.

267voto

Abhijeet Kasurde Punkte 3570

Verwenden Sie test() Methode:

var term = "sample1";
var re = new RegExp("^([a-z0-9]{5,})$");
if (re.test(term)) {
    console.log("Valid");
} else {
    console.log("Invalid");
}

148voto

pmrotule Punkte 7745

Sie können verwenden match() auch:

if (str.match(/^([a-z0-9]{5,})$/)) {
    alert("match!");
}

Aber test() scheint schneller zu sein, wie Sie lesen können ici .

Wichtiger Unterschied zwischen match() y test() :

match() funktioniert nur mit Strings, aber test() funktioniert auch mit ganzen Zahlen.

12345.match(/^([a-z0-9]{5,})$/); // ERROR
/^([a-z0-9]{5,})$/.test(12345);  // true
/^([a-z0-9]{5,})$/.test(null);   // false

// Better watch out for undefined values
/^([a-z0-9]{5,})$/.test(undefined); // true

63voto

user278064 Punkte 9738

Verwenden Sie /youregexp/.test(yourString) wenn Sie nur wissen wollen, ob Ihre Zeichenfolge mit dem Regexp übereinstimmt.

26voto

user2449231 Punkte 474

Hier ist ein Beispiel, das nach bestimmten HTML-Tags sucht, damit klar ist, dass /someregex/.test() gibt einen booleschen Wert zurück:

if(/(span|h[0-6]|li|a)/i.test("h3")) alert('true');

Erinnern Sie sich an anzuzeigen ^ für den Anfang der Zeichenkette und $ für das Ende, wenn Sie die exakte Übereinstimmung der gesamten Zeichenfolge prüfen wollen.

Beispiel:

/[a-z]+/.test('aaa111'); // true
/^[a-z]+$/.test('aaa111'); // false

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X