it-swarm.com.de

Überprüfen Sie, ob eine Zeichenfolge mit einem regulären Ausdruck in JS übereinstimmt

Ich möchte JavaScript verwenden (kann mit jQuery verwendet werden), um eine clientseitige Überprüfung durchzuführen, um zu überprüfen, ob eine Zeichenfolge mit dem regulären Ausdruck übereinstimmt:

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

Im Idealfall wäre es ein Ausdruck, der wahr oder falsch zurückgibt.

Ich bin ein JavaScript-Neuling. Tut match() das, was ich brauche? Es scheint zu prüfen, ob ein Teil eines Strings mit einem regulären Ausdruck übereinstimmt, nicht das Ganze.

633
Richard

Verwenden Sie regex.test() , wenn Sie nur ein boolesches Ergebnis wünschen:

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 den () aus Ihrem regulären Ausdruck entfernen, da Sie kein Capture benötigen.

1035
user113716

Verwenden Sie die Methode test():

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

Sie können auch match() verwenden:

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

Aber test() scheint schneller zu sein, als Sie lesen können hier .

Wichtiger Unterschied zwischen match() und 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
75
pmrotule

Verwenden Sie /youregexp/.test(yourString), wenn Sie nur wissen möchten, ob Ihre Zeichenfolge mit dem regulären Ausdruck übereinstimmt.

44
user278064

In diesem Beispiel wird nach bestimmten HTML-Tags gesucht, damit klar ist, dass /someregex/.test() einen Booleschen Wert zurückgibt:

if(/(span|h[0-6]|li|a)/i.test("h3")) alert('true');
7
user2449231
 let str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
 let regexp = /[a-d]/gi;
 console.log(str.match(regexp));
4
Mary

Ich würde empfehlen, die Methode execute zu verwenden, die null zurückgibt, wenn keine Übereinstimmung vorliegt. Andernfalls wird ein hilfreiches Objekt zurückgegeben.

let case1 = /^([a-z0-9]{5,})$/.exec("abc1");
console.log(case1); //null

let case2 = /^([a-z0-9]{5,})$/.exec("pass3434");
console.log(case2); // ['pass3434', 'pass3434', index:0, input:'pass3434', groups: undefined]
1
Juan Navarrete

versuchen

 /^[a-z\d]{5,}$/.test(str)
console.log( /^[a-z\d]{5,}$/.test("abc123") );

console.log( /^[a-z\d]{5,}$/.test("ab12") );
1

bitte probieren Sie diese Blume:

/^[a-z0-9\_\.\-]{2,20}\@[a-z0-9\_\-]{2,20}\.[a-z]{2,9}$/.test('[email protected]');

wahr

0
Jaber Alshami