我想生成一个给出这个响应的函数:
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
- >的假
请帮忙!我对正则表达式相关的东西并不擅长。
答案 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