【问题标题】:Extract Multiple Values from string regex从字符串正则表达式中提取多个值
【发布时间】:2016-07-09 13:13:06
【问题描述】:

我有字符串:

"BSSID:00:00:00:00:00:00<br>Encryption: WPA+PSK WPA+AES-CCM<br>Channel: 11<br><br>Current Clients: <br><br><br>"

我不知道如何使用正则表达式过滤掉“BSSID”、“加密”等的值。 我试过这个正则表达式:\b(BSSID:|Encryption: |Channel: )\b 但是,这并不像想象的那样工作。如果有人能引导我走向正确的方向,那就太好了!谢谢。

【问题讨论】:

    标签: javascript jquery regex extract


    【解决方案1】:

    将以下正则表达式与String.replace 函数一起使用:

    var str = "BSSID:00:00:00:00:00:00<br>Encryption: WPA+PSK WPA+AES-CCM<br>Channel: 11<br><br>Current Clients: <br><br><br>",
        replaced = str.replace(/\b(BSSID|Encryption|Channel)\s?:/g, "");
    
    console.log(replaced);  // 00:00:00:00:00:00<br> WPA+PSK WPA+AES-CCM<br> 11<br><br>Current Clients: <br><br><br>
    

    【讨论】:

      【解决方案2】:

      你可以试试这个方法

      var input = "BSSID:00:00:00:00:00:00<br>Encryption: WPA+PSK WPA+AES-CCM<br>Channel: 11<br><br>Current Clients: <br><br><br>";
      var items = input.split("<br>").filter( function(item){ return item.indexOf( ":" ) != -1 });
      
      //console.log(items);
      
      var map = {};
      items.forEach( function( item ){
        var key = item.substring( 0, item.indexOf( ":") );
        var value = item.substring( item.indexOf( ":") + 1);
        map[ key ] = value;
      })
      
      //console.log( map );
      
      console.log( map.BSSID ); //value of BSSID
      console.log( map.Encryption ); //value of Encryption

      【讨论】:

      • 谢谢您,您的两个脚本都有效,但我认为@RomanPerekhrest 采用了更简洁的方法。但是,我最终结合了您的建议来创建预期的最终结果。非常感谢!
      猜你喜欢
      • 1970-01-01
      • 2023-02-09
      • 2014-08-25
      • 1970-01-01
      • 2020-07-13
      • 2021-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多