2016-04-25 55 views
0

我正在构建一个小部件,该小部件将在页面上双击时为元素生成图形。如果不重新制作所有小部件,这是我解决问题的唯一方法。使用匹配查找字符串中的ID

我想从元素的html中找到一个控件的ID。

所有部件我想工作是div元素里面panel_content_id_#

我想找到的代码

var io_id=32715; 

行发现的数量如何搜索字符串此模式,并得到号码(32715)。

$('div[id^="panel_content_id_"]').dblclick(function(e){ 
    console.log($(this).attr('id')); 
    var code = $(this).html(); 

    // Find ID 
    var id = -1; 
    var search = code.match("var io_id="); 
    if(search > -1){ 


    } 

    console.log($(this).html()); 

}); 

码IM寻找的线看起来像这样

var io_id=xxxxx; 

其中XXXXX =一些随机数,我不知道

我想找到XXXXX

+0

你想找到什么? – uzaif

+1

第四行字面上说'我想找到在代码行var io_id = 32715;' –

+0

找到的数字如果你只是想在String中找到它,然后使用''theString.indexOf(substring)''这样的模式。 substring是字符串中的id。 –

回答

1

拆分它在两个部分 - var io_id=之前的所有代码,另一部分是之后。
然后你知道该行以;结尾,所以从第二部分开始,你就删除了分号前的内容。
CODE

$('div[id^="panel_content_id_"]').dblclick(function(e){ 
    console.log($(this).attr('id')); 
    var code = $(this).html(); 

    // Find ID 
    var id = -1; 
    if (code.indexOf("var io_id")>-1) { 
     id = parseInt(code.split("var io_id=")[1].split(";")[0]); 
    } 

    if(search > -1){ 
     console.log("The code betrayed me"); 
    } 

    console.log("The id is: " +id); 
}); 
1

也许你可以试试这个正则表达式模式:

\d+(?! var io_id=) 

像这样来使用:

$('div[id^="panel_content_id_"]').dblclick(function(e) { 
 
    console.log($(this).attr('id')); 
 
    var code = $(this).html(); 
 

 
    // Find ID 
 
    var id = -1; 
 
    var search = code.match("var io_id="); 
 
    
 
    if (search) { // Edited 
 
    // New code 
 
    alert(code.match(/\d+(?! var io_id=)/gim)); 
 
    } 
 

 
    console.log($(this).html()); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="panel_content_id_32715"> 
 
    Div content 
 
    <br><br> 
 
    var io_id=32715; 
 
</div>

相关问题