请注意,我不知道我想隔离的完整类是什么,仅是其格式,例如:
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];
}