请实现支持'?'and'*'.的通配符模式匹配

211 阅读1分钟

'?' 可以匹配任何单个字符。'*' 可以匹配任何字符序列(包括空序列)。返回两个字符串是否匹配函数声明为

        function isMatch(s, p) {

            let newArr = p.split('').filter((ele,index)=>{

                return index===0 || !(ele === '*' && ele === p[index-1])

            })

            let newP = newArr.join('').replace(/\*/ig, '.*').replace(/\?/ig, '.{1}')

            var reg = new RegExp(eval(`/^${newP}$/`));

            return reg.test(s)

        }