2016-01-22 132 views
-2

我要生成一个函数,它给出了这样的回应:如何检查URL是否只包含一个路由参数?

www.soundcloud.com/abc - >真正

www.soundcloud.com/abc/1 - >

http://www.soundcloud.com/abc - >真正

https://www.soundcloud.com/abc - >true

https://www.soundcloud.com/abc/1 - >

请帮帮忙!我在正则表达式相关的东西不好。

+2

请发布您尝试过的方法以及您遇到困难的地方,StackOverflow用于帮助您处理代码,而不是为您完成所有工作。 – uruloke

回答

2
var myString = 'http://www.soundcloud.com/abc'; 
console.log(/^http\:\/\/www.soundcloud.com\/[^\/]+\/?$/.test(myString)); 

的开始是简单的:^在正则表达式的开头表示该字符串应该匹配从一开始这种模式,其次是你要匹配顶级URL。

然后,[^\/]+将匹配一个或多个字符是正斜杠(^则无效,\/逸出正斜杠字符)。

由于有时URL以斜线结尾,因此我们已测试了可选的结尾正斜杠\/?,后面跟着$,这意味着该字符串应该在那里结束。所以这将测试abc/abc

正则表达式不是很难把握,并且可以使生活在许多情况下变得更加容易。 MDN有一个非常好的和简单的参考页面:https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions

相关问题