检查字符串是否为Spotify URL

mhl*_*cka 0 javascript regex parsing

我需要创建一个函数来检查字符串是否是Spotify URL.我做了一个简单的if语句来检查字符串是否包含Spotify URL的一部分,它可以工作,但它是废话.有人可以告诉我更好的方法与正则表达式或其他东西.

if ( input.indexOf('spotify:') > -1  || input.indexOf('spotify.com')  > -1) {
    console.log('url');
}
Run Code Online (Sandbox Code Playgroud)

Spotify网址有以下三种形式:

https://play.spotify.com/user/spotifydiscover/playlist/0vL3R9wDeAwmXTTuRATa14
https://open.spotify.com/track/1TZ3z6TBztuY0TLUlJZ8R7
spotify:track:1TZ3z6TBztuY0TLUlJZ8R7
Run Code Online (Sandbox Code Playgroud)

Nie*_*jes 6

/^(spotify:|https://[a-z]+\.spotify\.com/)/
Run Code Online (Sandbox Code Playgroud)

http://www.regexr.com/3cl88

通过适当的JS转义,因为那里有相当多的斜线:

var url = 'https://open.spotify.com/track/1TZ3z6TBztuY0TLUlJZ8R7';
console.log(/^(spotify:|https:\/\/[a-z]+\.spotify\.com\/)/.test(url));
// Outputs 'true'
Run Code Online (Sandbox Code Playgroud)