【问题标题】:Find ID in String using match使用匹配在字符串中查找 ID
【发布时间】:2016-04-25 13:25:57
【问题描述】:

我正在构建一个小部件,当在页面上双击一个元素时,它将生成一个图表。在不重新制作所有小部件的情况下,这是我解决问题的唯一方法。

我想从一个元素的 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());

});

我正在寻找的代码行看起来像这样

 var io_id=xxxxx;

其中 xxxxx = 一些我不知道的随机数

我要找xxxxx

【问题讨论】:

  • 你想找什么?
  • 第四行字面意思是I want to find the number found on the line of code var io_id=32715;
  • 如果你只想在字符串中找到它,那么使用theString.indexOf(substring)这样的模式,其中子字符串是字符串中的id。
  • 但是有一个可能的问题——var id = 123".indexOf("12") 也返回 true。那么可能theString.indexOf(substring+";") 可能是要走的路
  • 我不知道ID是什么

标签: javascript jquery match


【解决方案1】:

将它分成两部分 - 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;
    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);
});

【讨论】:

    【解决方案2】:

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

    \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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-21
      • 1970-01-01
      • 2015-08-05
      • 2014-06-08
      • 1970-01-01
      相关资源
      最近更新 更多