Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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中匹配特定url_Javascript_Regex - Fatal编程技术网

在javascript中匹配特定url

在javascript中匹配特定url,javascript,regex,Javascript,Regex,我试图在javascript上匹配youtube和vimeo URL。我正在使用regexr进行游戏,并得出以下结论: (http|https)://(youtu|www.youtube|vimeo|youtube)\.(be|com)/[A-Za-z0-9\?&=]+ 它在regexr上运行得非常好,匹配中不包含空格,因此它只匹配以下内容: http://youtu.be/ssdfsjlfsfsl 而不是这个: http://youtu.be/ssdfsjl someword 但

我试图在javascript上匹配youtube和vimeo URL。我正在使用regexr进行游戏,并得出以下结论:

(http|https)://(youtu|www.youtube|vimeo|youtube)\.(be|com)/[A-Za-z0-9\?&=]+
它在regexr上运行得非常好,匹配中不包含空格,因此它只匹配以下内容:

http://youtu.be/ssdfsjlfsfsl
而不是这个:

http://youtu.be/ssdfsjl someword
但当我在javascript上测试它时,它仍然会将url与一个空格和旁边的另一个单词匹配:

var x = new RegExp("(http|https)://(youtu|www.youtube|vimeo|youtube)\.(be|com)/[A-Za-z0-9\?&=]+")

x.test("http://www.youtube.com/watch?v=FvYo3ZgaQ1c&feature=plcp someword")

不确定为什么会发生这种情况,我还尝试添加
\S
\但它似乎没有任何效果

看起来不像是在检查字符串的开头/结尾。使用
^
$

var x = new RegExp("^(http|https)://(youtu|www.youtube|vimeo|youtube)\.(be|com)/[A-Za-z0-9\?&=]+$")

看起来不像是在检查字符串的开头/结尾。使用
^
$

var x = new RegExp("^(http|https)://(youtu|www.youtube|vimeo|youtube)\.(be|com)/[A-Za-z0-9\?&=]+$")

这是因为你没有锚定你的表情

^(http|https)://(youtu|www.youtube|vimeo|youtube)\.(be|com)/[A-Za-z0-9\?&=]+$
|                                                                           |
here, and...                                                                here.

这是因为你没有锚定你的表情

^(http|https)://(youtu|www.youtube|vimeo|youtube)\.(be|com)/[A-Za-z0-9\?&=]+$
|                                                                           |
here, and...                                                                here.
regex.test(string)
返回在字符串中是否找到一个或多个匹配项的布尔值,因此它将(并且应该)为
返回
true
http://www.youtube.com/watch?v=FvYo3ZgaQ1c&feature=plcp someword“

如果要测试字符串是否为URL且仅为URL,请添加一些锚定:

^(http|https)://(youtu|www.youtube|vimeo|youtube)\.(be|com)/[A-Za-z0-9\?&=]+$
regex.test(string)
返回在字符串中是否找到一个或多个匹配项的布尔值,因此它将(并且应该)为
返回
true
http://www.youtube.com/watch?v=FvYo3ZgaQ1c&feature=plcp someword“

如果要测试字符串是否为URL且仅为URL,请添加一些锚定:

^(http|https)://(youtu|www.youtube|vimeo|youtube)\.(be|com)/[A-Za-z0-9\?&=]+$

这不也允许vimeo.be的域和tld吗(这可能存在,但不是我见过的)。哦,谢谢你告诉我,我想它还需要一些修复。这不允许vimeo.be的域和tld吗(这可能存在,但不是我见过的)。哦,谢谢你告诉我,我想它还需要修理