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



以下函数按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标记。

我想知道是否有一种方法可以告诉regex:匹配text,但如果regex为空则不匹配。这样我就可以去掉if语句。或者使用if语句是最好的选择?

我会这样做。

if (!text) return
const text;

最新更新