0

我想用排除过滤我的数组,所以我做了

const exclude = include.filter((d) => {
                let negate1 = '[^'
                let negate2 = ']'
                let negate = negate1.concat(letterexc).concat(negate2)
                let exclRegex = new RegExp(negate,'g')
                console.log(exclRegex) //return --> /[^anyletter]/g
                return d.list.match(exclRegex)
            })

我从输入字段添加[^和变量并制作否定正则表达式,但它不起作用。不过滤任何东西。letterexc]

我在这里阅读并尝试了我的模式https://regexr.com/并发现我的模式是否真的有效,但不是我自己。

MDN链接的另一篇文章说类似的模式有效(括号后有插入符号)

截屏

编辑:我添加了一个笔链接。它使用包含和排除字母的 2 个输入字段进行过滤。附带的过滤器工作正常

4

1 回答 1

0

我找到了

我改变

d.list.match(exclRegex)

!d.list.match(exclRegex)

^同时从 concat中移除克拉

完整的代码摘录:

const exclude = include.filter((d) => {
                let negate1 = '['
                let negate2 = ']'
                let negate = negate1.concat(letterexc).concat(negate2)
                let exclRegex = new RegExp(negate,'g')
                console.log(exclRegex) //return --> /[^anyletter]/g
                return !d.list.match(exclRegex)
            })
于 2022-02-06T18:55:00.387 回答