jQuery匹配正则表达式

Gre*_*reg 18 regex jquery

var playerClass = $(this).parent().attr('class')
Run Code Online (Sandbox Code Playgroud)

关于仅从dom中选择特定班级的问题.

我可以添加到这一行只能选择一个类为player-1,player-2的类,基本上任何前缀为player-后跟一个数字的类?

jfr*_*d00 43

我无法确切地说出你的问题是什么,所以这里有四种可能性.希望其中一个符合您的意图,或者您可以稍微修改其中一个以适应.

要选择player-xxwhere 类为xx数字的所有输入项,可以执行以下操作:

var playerClass = $('input[class^="player-"]').filter(function() {
    return((" " + this.className + " ").match(/\splayer-\d+\s/) != null);
});
Run Code Online (Sandbox Code Playgroud)

第一个jQuery选择器获取以任何开头的类名"player-".然后过滤器会删除任何不属于的项目"player-nn".

如果您只是想检查一个特定的类名是否包含player-nn,那么您可以这样做:

if ((" " + $(this).parent().attr('class') + " ").match(/\splayer-\d+\s/) != null) {
    // the parent has player-nn as a class
}
Run Code Online (Sandbox Code Playgroud)

如果您只想获取父级的匹配类,可以使用以下方法:

var matches = (" " + $(this).parent().attr('class') + " ").match(/\s(player-\d+)\s/);
if (matches) {
    playerClass = matches[1];
}
Run Code Online (Sandbox Code Playgroud)

如果你想在实际获得后面的数字player-,你可以这样做:

var matches = (" " + $(this).parent().attr('class') + " ").match(/\splayer-(\d+)\s/);
if (matches) {
    playerNum = parseInt(matches[1], 10);
}
Run Code Online (Sandbox Code Playgroud)

注意:所有这些示例都使用了一个技巧(我从jQuery学到的),如果你在整个类名的开头和结尾添加一个空格,那么你可以通过寻找你的特定类名环绕来查找带有正则表达式的给定类名两边都是空白.这可以确保您不匹配较长类名的一部分,只匹配整个类名.jQuery在它的.hasClass()实现中使用了这个技巧.


elc*_*nrs 5

我想这就是你需要的:

var playerClass = $(this).parent().attr('class').match(/player-\d+/);
Run Code Online (Sandbox Code Playgroud)