本题主要考察正则表达式,坑点有二:
1.input空间的value值包含正则表达式中的特殊字符时需要转义
2.正则表达式应避免使用全局匹配(//g),可能会造成结果横跳
function suggest(items) {
    var input = document.querySelector('.js-input');
    const regKeys = ['(', ')', '.', '?', '^', '/', '\\', '*', '[', ']', '|', '+', '{', '}', '$'];
    // ul 初始化, 清除所以li
    var suggestContent = document.querySelector('.js-suggest')
    while (suggestContent.children[0].children.length > 0) {
        suggestContent.children[0].children[0].remove();
    }
    // console.log(items);
    var value = input.value.trim();
    var charArray = value.split('');
    for (var i = 0; i < charArray.length; i++) {
        if (regKeys.includes(charArray[i])) {
            charArray[i] = '\\' + charArray[i];
        }
    }
    // var reg = RegExp(charArray.join('.*?') + '.*?','g');  // 不能用
    var reg = RegExp(charArray.join('.*?') + '.*?');
    console.log(reg);
    // console.log(reg.test('110'));
    if (!value) {
        suggestContent.className = 'js-suggest hide';
        return;
    }
    items.forEach(function(item, index) {
        console.log(item, reg.test(item));
        console.log(item, reg.test(item));
        if (reg.test(item)) {
            console.log('匹配成功', item);
            var li = document.createElement('li');
            li.innerHTML = item;
            suggestContent.children[0].appendChild(li);
        }
    });
    if (suggestContent.children[0].children.length === 0) {
        suggestContent.className = 'js-suggest hide';
    } else {
        suggestContent.className = 'js-suggest';
    }
    console.log(suggestContent.className.indexOf('hide'));
    console.log(suggestContent.children[0]);
    console.log(suggestContent.children[0].children.length);
}