我在一个 jQuery 选择器中使用通配符或正则表达式 (不确定确切的术语) 的文档。

我一直在寻找这我自己,但已经找不到的语法以及如何使用它的信息。任何人都知道所在文档的语法呢?

编辑︰ 属性筛选允许您选择基于属性值的模式。

2008-10-10 05:40:48
问题评论:

不具有什么来查看当前的答案?

这一问题的注释需要被锁定,因此没有人会毫无意义的注释,如"不出名"或"名人确实"

回答:

James Padolsey 创建了一个允许正则表达式要用于所选内容的奇妙的筛选器

假设您有以下div:

<div class="asdf">

Padolsey 的:regex筛选器可以选择如下所示︰

$("div:regex(class, .*sd.*)")

另外,请检查在选择器上的官方文档.

还行。我有过这样的事情,但我真的不知道我在寻找的内容的名称。我有另一种外观和使用属性筛选器是我所是的后。

极好的资源 !

通过 @padolsey 的正则表达式选择器非常好用。下面是一个示例,可以循环访问文本、 文件和复选框输入的字段或与它 textareas: $j (输入︰ regex(type, text|file|checkbox),textarea').each(function(index){//...});

从 nickf 下面的答案应接受。如果您正在阅读此答案,请务必阅读那个 !

我收到错误︰ 语法错误,不可识别的表达式︰ 不支持的伪︰ 正则表达式

可以使用filter功能用于更复杂的正则表达式匹配。下面是一个示例只符合前三个 div (实况演示此处):

<div id="abcd"></div>
<div id="abccd"></div>
<div id="abcccd"></div>
<div id="abd"></div>
$('div')
    .filter(function() {
        return this.id.match(/abc+d/);
    })
    .html("Matched!");

一个简单的解决方案,不需要额外的库/插件为 + 1。

3 年后期这里,但我只查找 jQuery 通配符,并发现这非常有用。我恨你,当可避免加载库数百。这就是我当初使用 jQuery 的初衷,就是我以往任何时候都可能需要几个简单而强大的函数中的所有功能将都合并的主要原因。

@stevendesu︰ 和另一个 3 年之后,我还决定要坚守这答案而不是使用多个选择器膨胀 jQuery。

如何使用 match(/abc+d/); 替换的变量?

这可能是很有帮助。

如果您正在查找包含然后它会像这样

    $("input[id*='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

如果要查找的开头则会是这样

    $("input[id^='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

如果要查找的结束与然后会像这样

     $("input[id$='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

如果您想要选择的元素的id 不是给定的字符串

    $("input[id!='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

如果您想要选择的元素id 包含给定的单词,由空格分隔

     $("input[id~='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

如果您想要选择的元素id 等于给定的字符串或字符串跟一个连字符开头

     $("input[id|='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

如果正则表达式的使用受到限制以测试是否以特定字符串开头的 attribut,您可以使用 ^ jquery 选择器

例如如果您只想选择 div id 以"abc"开头,则可以使用$("div[id^='abc']")

大量的非常有用的选择器,以避免使用正则表达式可查找此处︰ http://api.jquery.com/category/selectors/attribute-selectors/

这将不会适用于区分大小写的匹配要求。.Filter 函数更好地满足这些需要。

这是为我好,我只是想看看是否没有末端的输入 id 种 '__destroy' 所以我使用了*=如下︰ $("input[id*='__destroy'][value='true']")

var test = $('#id').attr('value').match(/[^a-z0-9 ]+/);

我们继续吧 !

内容来源于Stack Overflow jQuery selector regular expressions
请输入您的翻译

jQuery selector regular expressions

确认取消