+
80
-

js中 reg正则如何进行中文模糊搜索匹配?

js中 reg正则如何进行中文模糊搜索匹配?

网友回复

+
0
-

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">

</head>

<body>
    <script type="text/javascript">
        var allMsg = [
          { name: "薛之谦", id: 1 },
          { name: "霍建华", id: 2 },
          { name: "蔡徐坤", id: 3 },
          { name: "胡歌", id: 4 },
          { name: "胡说", id: 5 }
        ];

    // 其余代码同上
    function handleSearch(queryString) {

      let queryStringArr = queryString.split("");

      let str = "(.*?)";
      let filterMsg = [];
      let regStr = str + queryStringArr.join(str) + str;

      let reg = RegExp(regStr, "i"); // 以mh为例生成的正则表达式为/(.*?)m(.*?)h(.*?)/i
      allMsg.map(item => {
        if (reg.test(item.name)) {
         filterMsg.push(item);
        }
      });
      return filterMsg;
    }
    console.log(handleSearch("建华"));
    </script>
</body>

</html>

我知道答案,我要回答