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.
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.
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");
}
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
Verwenden Sie /youregexp/.test(yourString)
, wenn Sie nur wissen möchten, ob Ihre Zeichenfolge mit dem regulären Ausdruck übereinstimmt.
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');
let str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
let regexp = /[a-d]/gi;
console.log(str.match(regexp));
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]
versuchen
/^[a-z\d]{5,}$/.test(str)
console.log( /^[a-z\d]{5,}$/.test("abc123") );
console.log( /^[a-z\d]{5,}$/.test("ab12") );
bitte probieren Sie diese Blume:
/^[a-z0-9\_\.\-]{2,20}\@[a-z0-9\_\-]{2,20}\.[a-z]{2,9}$/.test('[email protected]');
wahr