我如何使用jQuery的.find方法和正则表达式作为参数?

我有一个xml,我想搜索“相似”的结果,类似于LIKE在SQL中所做的。 我想过做类似$(xml).find('regexHere')事情,但我不知道该怎么做。 如果那不是最好的方法,你能推荐别的吗? 我需要搜索的数据在节点的参数范围内。

编辑

$(xml).find('[cityName=Rio de Janeiro]')给出了我正在搜索的节点,因为它是完全相同的字符串。 但是,如果我搜索Rio我没有得到任何结果,即使里约热内卢和里约克拉罗的节点有我正在寻找的字符串。

我尝试使用$(xml).find('[cityName|="Rio"]')没有运气,没有一个结果出现,但如果我改为Rio de Janeiro我得到我所需要的。

要查找具有与某个正则表达式匹配的属性的所有元素,可以使用.find("*")选择所有元素,然后使用.filter(...)删除任何不匹配的元素:

例如,要查找其message属性包含“hello world”的所有节点:

 var elements = $(xml).find("*").filter(function() { return /[Hh]ello [Ww]orld/.test($(this).attr("message")); }); 

您可以使用逗号分隔选择器,也可以使用.contents().filter()