Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何验证字符串在javascript中是否为有效的Yelp URL?_Javascript_Regex - Fatal编程技术网

如何验证字符串在javascript中是否为有效的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.

示例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.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检查我的更新