我有这个网址: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();
但没有运气。任何帮助将非常感激。我怎么能这样做?
答案 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捕获它。
在正则表达式中......
点(.
)代表任何字符
\w
代表字母数字字符(a到z,A到Z和0到9)和下划线(_
)
plus(+
)表示至少有一个字符
.+
任何字符改变一次,[a-z]+
a至z至少一次,\w+
任何字母数字字符至少一次。
(?
)阻止正则表达式变得贪婪
(-
)只不过是一个应该存在于您网址中的简单字符
在这里,我们有三个部分:
。+ / :捕获到https://www.tripadvisor.com/img/cdsi/img2/ratings/traveler/
(。+?):捕获3.5
- 。+ :捕获-27451-5.png
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]);