如何验证字符串在javascript中是否为有效的Yelp URL?
示例Yelp URL:如何验证字符串在javascript中是否为有效的Yelp URL?,javascript,regex,Javascript,Regex,示例Yelp URL: http://www.yelp.com/biz/benu-san-francisco-4 http://www.yelp.com/biz/coi-san-francisco 最后一部分是应返回的yelp_id。如果URL无效,函数应返回null 这是我的实现,但它可能不是编写它的最佳方式 function getYelpID(url){ if(url.indexOf('yelp.com/biz/') >= 0){ var sp = url.
http://www.yelp.com/biz/benu-san-francisco-4
http://www.yelp.com/biz/coi-san-francisco
最后一部分是应返回的yelp_id。如果URL无效,函数应返回null
这是我的实现,但它可能不是编写它的最佳方式
function getYelpID(url){
if(url.indexOf('yelp.com/biz/') >= 0){
var sp = url.split('/');
if(sp.length >= 3){
return sp[sp.length - 1];
}else{
return null;
}
}else{
return null;
}
}
有人能帮我找到一个更好的方法来验证YelpURL并返回ID吗
注意:我肯定有些人会粘贴一个以“www”而不是“http”开头的URL。我还假设有些人会粘贴“https”。我想要一个能处理所有常见场景(无论它们是什么)的函数。我的功能应该适用于所有情况,但这肯定不是最好的方法。您可以使用以下方法:
function getYelpID(url) {
var m=/^(?:https?:\/\/)?(www\.)?yelp\.com\/biz\/([^\/]+)$/i.exec(str);
return m ? m[1] : null;
}
定义“有效”。它应该仅仅匹配模式还是应该实际解析为现有URL?@FelixKling检查我的更新