const keyMap = {
'{': '}',
'[': ']',
'(': ')'
}
function isFormat(str) {
if (!str) return false // 括弧匹配,你得有长度嘛
let list = [] // 存储左半边括号
const len = String(str).length
if (len % 2) return false // 长度为基数,肯定不是成对的括弧
for (let i = 0; i < len; i++) {
const key = String(str).charAt(i)
if (keyMap[key]) { // 将左半边括弧入栈(list)
list.push(key)
} else { // 说明不是左半边括弧,从list拿出最后一个与之匹配,能匹配则配对成功
if (!list.length) return false
const lastList = list.pop()
if (keyMap[lastList] != key) return false
}
}
// 一次遍历完成,查看list长度是否为0,不为零则还有未匹配的括弧
if (list.length) return false
return true
}
括弧匹配 函数
最新推荐文章于 2022-05-11 12:01:10 发布