Tarkista, vastaako merkkijono regexiä JS:ssä

Haluan käyttää JavaScriptiä (voi olla jQuery) tehdä joitakin asiakkaan puolen validointi tarkistaa, onko merkkijono vastaa regex:

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

Ihannetapauksessa se olisi lauseke, joka palauttaa true tai false.

Olen JavaScriptin aloittelija, tekeekö match() sen, mitä tarvitsen? Se näyttää tarkistavan, vastaako osa merkkijonosta regexiä, ei koko merkkijonoa.

Ratkaisu

Käytä regex.test(), jos haluat vain boolean-tuloksen:

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

...ja voit poistaa () regexpistäsi, koska et tarvitse kaappausta.

Kommentit (6)

Käytä /youregexp/.test(yourString), jos haluat vain tietää, täsmääkö merkkijono regexp:n kanssa.

Kommentit (0)

Tässä on esimerkki, joka etsii tiettyjä HTML-tageja, jotta on selvää, että /someregex/.test() palauttaa boolean-arvon:

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