javascriptでyoutubeとvimeoのURLを一致させようとしています。私は正規表現を使って遊んでいて、これを思いつきました:
(http|https)://(youtu|www.youtube|vimeo|youtube)\.(be|com)/[A-Za-z0-9\?&=]+
正規表現でうまく機能します。空白は一致に含まれないため、これにのみ一致します。
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
orを追加しようとしまし!\s
たが、効果がないようです。