Javascript 带有正则表达式的jQuery选择器

Javascript 带有正则表达式的jQuery选择器,javascript,jquery,regex,Javascript,Jquery,Regex,我希望扫描一个页面并查找任何具有包含单词price的类或id的html元素。我的想法是在这里使用正则表达式,但我无法正确地使用它 我在OSX上使用Safari和Chrome var price = $("div:regex(\bprice\b)").text(); 其目的是在电子商务网站上获取产品的价格,如果该价格尚未在已处理的开放式图表中说明。“\b”与“\x08”相同 转义\: var price = $("div:regex(\\bprice\\b)").text(); 一种简单的方法

我希望扫描一个页面并查找任何具有包含单词
price
的类或id的html元素。我的想法是在这里使用正则表达式,但我无法正确地使用它

我在OSX上使用Safari和Chrome

var price = $("div:regex(\bprice\b)").text();
其目的是在电子商务网站上获取产品的价格,如果该价格尚未在已处理的开放式图表中说明。

“\b”
“\x08”
相同

转义
\

var price = $("div:regex(\\bprice\\b)").text();
一种简单的方法是使用包含词选择器:

jQuery.expr[':'].regex = function(elem, index, match) {
    var regex = new RegExp(match[3]),
        $elem = $(elem);
    return regex.test($elem.attr('class')) || regex.test($elem.attr('id')); 
};

请参见

您可以通过添加新的pseuo选择器来完成此操作:

jQuery.expr[':'].regex = function(elem, index, match) {
    var regex = new RegExp(match[3]),
        $elem = $(elem);
    return regex.test($elem.attr('class')) || regex.test($elem.attr('id')); 
};
您可以通过以下方式使用此选择器:

$("div:regex(\\bprice\\b)")

感谢这一点,但是我在控制台中得到了这一点
Error:Syntax Error,unrecogned expression:unsupported pseudo:regex
regex
不是jQuery的一部分,您必须非常感谢这一点,现在就得到它有什么想法吗
TypeError:“undefined”不是一个对象(评估“match[3]”)
有趣的替代方法:虽然可能是一个性能良好的slug:(但仍然很有趣。我尝试过使用这个
$('div[id~=“price”]、div[class~=“price”]、span[id~=“price”]、span[class~=“price”]、p[class~=“price”]、p[id~=“price”]).first().text()
而且它工作得很好,但是看起来有点凌乱。有什么想法吗?所以只需使用
$('[id~=“price”],[class~=“price”])