【问题标题】:How to get characters from second last index using indexof in javaScript?如何在javascript中使用indexof从倒数第二个索引中获取字符?
【发布时间】:2017-02-21 10:48:12
【问题描述】:

var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli"     
var n = absoluteURL.lastIndexOf('/');
var result = absoluteURL.substring(n + 1);
//alert(result);
console.log(result);

在我使用 lastIndexOf 时,我得到了类似“vikas-kohli”的结果。

现在如果有人想从倒数第二个索引中获取字符,或者它可能是倒数第三个索引,那么我该如何获取呢?

我希望我能很好地解释我的问题

【问题讨论】:

标签: javascript jquery url lastindexof


【解决方案1】:
  • 不要使用lastIndexOf('/'),而是使用字符串split('/') 方法。

var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli"     
var splittedStr = absoluteURL.split('/');
console.log(splittedStr);
  • 然后从数组中获取需要的元素。

    var res = splittedStr[splittedStr.length-n]; // n: 1,2,3.. cosnole.log(res);

演示

var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli"     
var splittedStr = absoluteURL.split('/');
console.log(splittedStr[splittedStr.length-2]);

【讨论】:

    【解决方案2】:

    这样吗?

    var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli"     
    var n = 2 //second last
    var arr = absoluteURL.split('/')
    console.log(arr[arr.length-n])
    

    【讨论】:

      【解决方案3】:

      只需将您的网址与/ 分开:

      var absoluteUrl = "http://stackoverflow.com/users/6262169/vikas-kohli";window.location.pathname;
      var splitedUrl = absoluteUrl .split('/');
      console.log(splitedUrl);

      然后在数组中获取你想要的元素。

      【讨论】:

        【解决方案4】:

        IndexOf 或类似的东西可能不是你需要的。你可以使用 split 代替。

        var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli";
        var partNo = 3;
        var parts = absoluteURL.split('/');
        alert(parts[parts.length - partNo]);

        【讨论】:

          【解决方案5】:

          一个简单的 for 循环就可以解决问题。

          var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli"    
          var n = absoluteURL.indexOf('/');
          absoluteURL = absoluteURL.substring(n+2); // Becasue there are two / first
          
          for(i = 0; i < x ; i++) // x should be such that if it is 1, then only the last string will come, if 2, then the last two strings
          {
              n = absoluteURL.indexOf('/');
              absoluteURL = absoluteURL.substring(n+1);
          }
          

          【讨论】:

            【解决方案6】:

            您可以在window.location.pathname 上使用.split()

            var locPath = "users/6262169/vikas-kohli"; // window.location.pathname;
            var arr = locPath.split('/');
            
            arr.forEach(function(item){
              console.log(item);
            });

            具体索引:

            var locPath = "users/6262169/vikas-kohli"; // window.location.pathname;
            var arr = locPath.split('/');
            
            console.log('last::::',arr[arr.length-1]);
            console.log('second last::::', arr[arr.length-2]);

            或者后续的pop()可以给你数组的最后一项:

            var locPath = "users/6262169/vikas-kohli"; // window.location.pathname;
            var arr = locPath.split('/');
            
            console.log(JSON.stringify(arr, 0, 0), '<---last::::popped-->',arr.pop());
            console.log(JSON.stringify(arr, 0, 0), '<-----second last::::popped--->', arr.pop());

            【讨论】:

              【解决方案7】:

              我们可以添加一个函数来自己做。

              添加以下代码sn-p:

              String.prototype.nIndexOf = function (char, index) {
              if (index >= this.split(char).length)
                  return -1;
              else
                  return this.split(char, index).join(char).length;
              }
              

              那么你可以这样使用:

              var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli"     
              var n1 = absoluteURL.nIndexOf('/', 4);
              var n2 = absoluteURL.nIndexOf('/', 5);
              var result = absoluteURL.substring(n1 + 1, n2);
              alert(result);
              

              【讨论】:

                【解决方案8】:

                您好,如果您可以从用户那里获得第 n 个索引,您可以使用它

                 var nthIndex = 2;
                 var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli"  
                 for (i = 0; i < nthIndex; i++) {   
                
                        var n = absoluteURL.lastIndexOf('/');           
                            absoluteURL = absoluteURL.substring(0,n);}
                alert(absoluteURL);
                

                【讨论】:

                  【解决方案9】:

                  /分割后从你想要的索引中连接字符串

                  var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli";     
                  var n = 2; // set the index from where you want to get characters
                  var arr = absoluteURL.split('/');
                  var a = [];
                  for(var i=n,j=0; i>=0; i--,j++){
                    a[j] = arr[arr.length-i];
                  }
                  console.log(a.join('')); // you can join it with any character

                  【讨论】:

                    【解决方案10】:

                    这应该有效:

                    var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli"     
                    var results = absoluteURL.split('/');
                    var result = results[results.length-2];
                    alert(result);
                    

                    【讨论】:

                    • 这会从最后一个索引中获取数据。
                    • 6262169/vikas-kohli 我需要这样的怎么做
                    猜你喜欢
                    • 1970-01-01
                    • 2013-11-15
                    • 1970-01-01
                    • 1970-01-01
                    • 2022-01-23
                    • 1970-01-01
                    • 2013-07-12
                    • 1970-01-01
                    • 2014-05-05
                    相关资源
                    最近更新 更多