JSFiddle - React, Tailwind, and code Playground

by Bharath Kumaar

HTML

<div id='1'></div>
<div id='2'></div>
<div id='3'></div>
<div id='4'></div>
<div id='5'></div>
<div id='6'></div>
<div id='7'></div>
<div id='8'></div>
<div id='9'></div>
<div id='10'></div>

JavaScript

const validate = (name, pattern) => {

    let isValid = true,
        parts = pattern.split("*");
      
    for(let i = 0; i < parts.length; i++){
    
    		if(parts[i]){
        
        		const partIndex = name.indexOf(parts[i]);
            
            if((i === 0 && partIndex === 0) || (i > 0 && partIndex !== -1)){
            		name = name.substring(partIndex + parts[i].length);
            } else {
                isValid = false;
                break;
            }
        }

    }
    
    return isValid;
}

document.getElementById('1').innerHTML = 'TRUE ' + validate('abc', 'a*')
document.getElementById('2').innerHTML = 'FALSE ' + validate('abc', 'b*')
document.getElementById('3').innerHTML = 'TRUE ' + validate('abc', '*b')
document.getElementById('4').innerHTML = 'FALSE ' + validate('abc', '*ba')
document.getElementById('5').innerHTML = 'TRUE ' + validate('abac', '*ba')
document.getElementById('6').innerHTML = 'TRUE ' + validate('testaddasdfbdsdsac', '*a*b*c*')
document.getElementById('7').innerHTML = 'FALSE ' + validate('testaddasdfbdsdsac', 'a*b*c*')
document.getElementById('8').innerHTML = 'FALSE ' + validate('testaddasdfbdsdsa', 'a*b*c')
document.getElementById('9').innerHTML = 'TRUE ' + validate('', '*')
document.getElementById('10').innerHTML = 'TRUE ' + validate('xxddsafasf', 'x*ddsafasf')