【问题标题】:Get a particular substring from a URL-like string [duplicate]从类似 URL 的字符串中获取特定的子字符串 [重复]
【发布时间】:2013-07-04 05:35:24
【问题描述】:
$("#index-link")[0].search = "?isNameChecked=False&isDateChecked=False&isStatusChecked=True"

如何使用 jQuery 从上述字符串中找到isStatusChecked == truefalse

【问题讨论】:

  • 使用正则表达式...!!!
  • 如果可能,使用正则表达式作为答案发布。会有帮助的。

标签: javascript jquery string substring


【解决方案1】:

我想有几种方法可以做到这一点。 一种方法是str.indexOf("isDateChecked=False"),如果找到字符串,它将返回value > -1

但是,如果您想在要检查的子字符串中允许可变间距,则正则表达式可能是更好的选择。不过,对于固定字符串,我会避免使用正则表达式并使用 indexof

【讨论】:

    【解决方案2】:
    【解决方案3】:

    发现了一个与此类似的问题,它提供了一个执行此操作的函数here

    通过稍微修改一下(假设你想使用一串文本,而不是地址栏中的 url)我想出了这个 -

    function getParameterByName(name, url) {
        name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
        var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
            results = regex.exec(url);
        return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
    }
    

    这是一个实际操作中的小提琴 - http://jsfiddle.net/dNe38/

    按照 Pranav 的建议,使用正则表达式找到该值。

    【讨论】:

      【解决方案4】:

      不需要 jQuery。使用内置 JavaScript 函数:

      var a = "?isNameChecked=False&isDateChecked=False&isStatusChecked=True";
      
      var params = a.split("&");
      
      params.forEach(function(param) {
          var keyValue = param.split("=");
          var key = keyValue[0];
          var value = keyValue[1];
          if(key === 'isStatusChecked') {
              alert(value); //True
          }
      });
      

      JSFiddle

      即使您向其添加更多参数也有效。

      【讨论】:

      • 但是如果你去掉其他参数就不行了,因为?会干扰。
      • @tom 您可以先使用a = a.substring(1) 删除? (String.substring docs)。
      【解决方案5】:

      如果字符串可以通过isStatusChecked进行拆分

      var newString = asearch.split("isStatusChecked=").pop(-1);
      

      【讨论】:

        【解决方案6】:

        简单的正则表达式会成功:

        var str = "?isNameChecked=False&isDateChecked=False&isStatusChecked=True";
        str.match(/isStatusChecked=(.*?)(?:$|&)/); // ["isStatusChecked=True", "True"]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-10-06
          • 1970-01-01
          • 1970-01-01
          • 2016-02-28
          • 2021-03-10
          • 2013-08-12
          • 2019-03-16
          相关资源
          最近更新 更多