如何检查URL是否只包含一个路由参数?

时间:2016-01-22 11:11:38

标签: javascript regex

我想生成一个给出这个响应的函数:

www.soundcloud.com/abc - >的

www.soundcloud.com/abc/1 - >的

http://www.soundcloud.com/abc - >的

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

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

请帮忙!我对正则表达式相关的东西并不擅长。

1 个答案:

答案 0 :(得分:2)

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

开头很简单:正则表达式开头的^表示字符串应该从开头开始匹配此模式,然后是您尝试匹配的顶级网址。

然后,[^\/]+将匹配一个或多个正斜杠的字符(^否定,\/转义正斜杠字符)。

由于有时URL以斜线结尾,因此我们测试了一个带\/?的可选结尾正斜杠,后跟$,这意味着该字符串应该在那里结束。因此,这对abc/abc都会测试为真。

RegEx并不难理解,可以在很多情况下让生活变得更加轻松。 MDN上有一个非常好的简单参考页面:https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions