JavaScript: validare il bilanciamento delle parentesi

JavaScript: validare il bilanciamento delle parentesi

In questo articolo vedremo come validare il bilanciamento delle parentesi con JavaScript.

Una coppia di parentesi si dice bilanciata quando alla parentesi di apertura segue quella corrispondente di chiusura. Possiamo implementare la seguente soluzione:


'use strict';

const isValid = (s = '') => {
    if(s.length === 0) {
        return false;
    } 
    const allowedChars = '(){}[]'.split('');
    let valid = true;
    for(const c of s) {
        if(!allowedChars.includes(c)) {
            valid = false;
        }
    } 
    
    let i = -1;
    const len = s.length;

    while(i < len) {
        i++;
        let ch = s[i];
        let next = i < len ? s[i + 1] : null;
        if(!next) {
            break;
        }
        switch(ch) {
            case '(':
                if(next !== ')') {
                    valid = false;
                }
                break;
            case '{':
                if(next !== '}') {
                    valid = false;
                } 
                break;
            case '[':
                if(next !== ']') {
                    valid = false;
                }       
                break;
            default:
                break;    
        }
    }

    return valid;
};

const examples = ['()', '()[]{}', '(]'];
for(const e of examples) {
    console.log(isValid(e));
}
Torna su