请注意,我不知道我想隔离的完整类是什么,仅是其格式,例如:

class="loadable context-enc encounterTimelineEncounterDateitem"


我正在寻找的是context-enc或匹配的东西:

.match(/\bcontext-[a-z]+\b/)


这确实是我想发现的[a-z] +部分。我不想过多地测试其中是否有匹配的类,但想知道“ context-”之后的字符串是什么(在本例中为“ enc”)。就像是:

function getcontext(class, 'context-'){ .. }

最佳答案

以下功能可能会返回您想要的内容...

function getContext(className, withString){
    var r = new RegExp("\\b"+ withString +"[a-z]+\\b");
    var s = new RegExp("^"+withString);
    return className.match(r)[0].replace(s,'');
}


如果动态创建正则表达式,则可以将变量内容插入其中,然后要隔离[a-z]+部分,只需从结果中删除搜索到的字符串即可。

编辑:使用@ nathan-taylor的捕获组建议,我们可以将函数简化为:

function getContext(className, withString){
    var r = new RegExp("\\b"+ withString +"([a-z]+)\\b");
    return className.match(r)[1];
}

07-28 07:06