Javascript:字符串正则表达式

Javascript: string regex

本文关键字:正则表达式 字符串 Javascript      更新时间:2023-09-26

我正在调用一个函数getParentElm(idStr,element),它接受一个id和一个元素,并搜索html树,直到它找到一个父元素,它的id等于idStr.

主叫码:

var s = "someId";  
var el = getParentElm(s,element);

我希望idStr参数与"someId"匹配的字符串一起工作,例如"someId123"
I tried:

var s = "/someId/"; 

,但它没有工作。理想情况下,我不想触碰getParentElm函数。

更新:谢谢vbranden。我尝试:var s =/someId/,这工作。我给你的评论点了赞。谢谢大家

不需要正则表达式

使用closest来遍历dom,使用id*来匹配包含idStr的id。

function getParentElm(idStr,element){
    return $(element).closest('[id*="' + idStr + '"]');
}

这里,它应该工作:

function getParentElm(idStr,element) {
   var patt = new RegExp(idStr +".*");
   while(element.parentNode)
   {  
      if(patt.test(element.parentNode.id))
        return element.parentNode;
      element=element.parentNode;
   }
   return false;
}

然后这样调用函数:

var el = getParentElm("someId",document.getElementById('foo'));