如何在正斜杠之间提取字符串

时间:2016-11-09 16:20:51

标签: javascript regex

我有这个网址:https://www.tripadvisor.com/img/cdsi/img2/ratings/traveler/3.5-27451-5.png

我正在尝试捕获值" 3.5",它位于最后一个正斜杠之后和第一个破折号之前。

我以为我可以用这样的东西来实现它:

‘/img/cdsi/img2/ratings/traveler/3.5-27451-5.png'.split('/').pop().split(‘-‘).shift();

但没有运气。任何帮助将非常感激。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

您使用的是错误的引号。

变化:

‘/img/cdsi/img2/ratings/traveler/3.5-27451-5.png'.split('/').pop().split(‘-‘).shift();
^                                                                        ^ ^

要:

'/img/cdsi/img2/ratings/traveler/3.5-27451-5.png'.split('/').pop().split('-').shift();

答案 1 :(得分:2)

您可以使用Regular Expressions捕获它。

在正则表达式中......

  1. 点(.)代表任何字符

  2. \w代表字母数字字符(a到z,A到Z和0到9)和下划线(_

  3. plus(+)表示至少有一个字符

      

    .+任何字符改变一次,[a-z]+ a至z至少一次,\w+任何字母数字字符至少一次。

  4. ?)阻止正则表达式变得贪婪

  5. -)只不过是一个应该存在于您网址中的简单字符

  6. 在这里,我们有三个部分:

    1. 。+ / :捕获到https://www.tripadvisor.com/img/cdsi/img2/ratings/traveler/

    2. (。+?):捕获3.5

    3. - 。+ :捕获-27451-5.png

    4. 
      
      var url = "https://www.tripadvisor.com/img/cdsi/img2/ratings/traveler/3.5-27451-5.png";
      
      //regular expression
      var reg = new RegExp('.+/(.+?)-.+');
      
      //executes your regular expression
      var res = reg.exec(url);
      
      // result will be captured in res[1]
      console.log(res[1]);