【发布时间】:2013-10-09 15:31:50
【问题描述】:
我需要通过 id 正则表达式获取一些元素。我已经为 source 找到了一些解决方案:
jQuery.expr[':'].regex = function(elem, index, match) {
var matchParams = match[3].split(','),
validLabels = /^(data|css):/,
attr = {
method: matchParams[0].match(validLabels) ?
matchParams[0].split(':')[0] : 'attr',
property: matchParams.shift().replace(validLabels,'')
},
regexFlags = 'ig',
regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g,''), regexFlags);
return regex.test(jQuery(elem)[attr.method](attr.property));
}
每个人都声称它工作正常,但是当我尝试运行简单代码 $(':regex[id,^node\-[0-9]+\-[0-9]+$]') 时,我在 match[3].split 上收到错误,说该方法不存在。事实上我已经在这个函数的第一行添加了 console.log(match) 并且我得到了:
[":regex", "regex", undefined, undefined, index: 0, input: ":regex[id,^node-[0-9]+-[0-9]+$]"]
我做错了什么?
【问题讨论】:
-
“我需要通过 id 正则表达式获取一些元素。” – 你能更具体一点吗?
-
这里有什么不清楚的地方?我有与特定模式匹配的 id 元素,需要使用 jquery 访问它...
标签: jquery regex jquery-selectors