typescript 如何匹配文本,但不匹配,如果正则表达式是空的?

oprakyz7  于 2022-12-27  发布在  TypeScript
关注(0)|答案(1)|浏览(175)

以下函数按text搜索元素:

function findElementsByText(selectors, text) {
  if (text === '') return []

  const regex = new RegExp(text)
  const elements = [...document.querySelectorAll(selectors)]

  return elements.filter((element) => {
    return element.textContent.match(regex)
  })
}

const selectors = 'a'
const text = ''
const foundElements = findElementsByText(selectors, text)
console.log(foundElements)
<a></a>
<a>Text</a>

如你所见,如果text为空,我返回[],如果没有这一行,函数将匹配所有的a标签。
我想知道是否有办法告诉正则表达式:匹配text,但如果正则表达式为空则不匹配。这样我就可以删除if语句。或者,拥有if语句是最好的选择?

flvlnr44

flvlnr441#

我也会这么做。

if (!text) return
const text;

相关问题