Controleer of een string overeenkomt met een regex in JS

Ik wil JavaScript gebruiken (kan met jQuery zijn) om client-side validatie uit te voeren om te controleren of een tekenreeks overeenkomt met de regex:

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

Idealiter zou het een expressie zijn die true of false retourneert.

Ik ben een beginner in JavaScript, doet match()wat ik nodig heb? Het lijkt te controleren of een deel van een string overeenkomt met een regex, niet het hele ding.


Antwoord 1, autoriteit 100%

Gebruik regex.test()als je alleen een booleaans resultaat wilt:

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

Antwoord 2, autoriteit 15%

Gebruik test()methode:

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

Antwoord 3, autoriteit 8%

U kunt ook match()gebruiken:

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

Maar test()lijkt sneller te zijn, aangezien je hierkunt lezen.

Belangrijk verschil tussen match()en test():

match()werkt alleen met strings, maar test()werkt ook met gehele getallen.

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

Antwoord 4, autoriteit 4%

Gebruik /youregexp/.test(yourString)als je alleen wilt weten of je string overeenkomt met de regexp.


Antwoord 5

Hier is een voorbeeld dat zoekt naar bepaalde HTML-tags, dus het is duidelijk dat /someregex/.test()een boolean retourneert:

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

Antwoord 6

let str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
 let regexp = /[a-d]/gi;
 console.log(str.match(regexp));

Antwoord 7

const regExpStr = "^([a-z0-9]{5,})$"
const result = new RegExp(regExpStr, 'g').test("Your string") // here I have used 'g' which means global search
console.log(result) // true if it matched, false if it doesn't

Antwoord 8

probeer

/^[a-z\d]{5,}$/.test(str)

Antwoord 9

Ik zou aanraden om de execute methode te gebruiken die null retourneert als er geen overeenkomst bestaat, anders retourneert het een nuttig object.

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]

Antwoord 10

Je kunt dit proberen, het werkt voor mij.

<input type="text"  onchange="CheckValidAmount(this.value)" name="amount" required>
 <script type="text/javascript">
    function CheckValidAmount(amount) {          
       var a = /^(?:\d{1,3}(?:,\d{3})*|\d+)(?:\.\d+)?$/;
       if(amount.match(a)){
           alert("matches");
       }else{
        alert("does not match"); 
       }
    }
</script>

Antwoord 11

probeer alstublieft deze bloem:

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

waar

Other episodes