2011-03-08 67 views
2

我使用livevalidation來驗證表單輸入字段,它要求提供YouTube視頻網址,並且我正在嘗試創建url規則,以便驗證用戶何時輸入 http://www.youtube.com/watch?v=11chars。我試圖partialmatch選項中的鏈接結合上面,像這樣:生效驗證設置youtube url驗證器

var link = new LiveValidation('link'); 
link.add(Validate.Inclusion, { within: [ 'http://' , 'www', 'youtube.com/watch?v=' ], partialMatch: true }) 

,並與這個長度例子結合起來:

var link = new LiveValidation('link'); 
link.add(Validate.Length, { minimum: 50, maximum: 50 }); 

但顯然,這看起來笨拙,我不認爲這將是非常如果工作正常,就會有效。

有沒有一種可能的方式來結合上面鏈接的一些例子來正確驗證YouTube網址?謝謝您的幫助!

回答

0

使用Validate.Format用正則表達式:

link.add(Validate.Format, { pattern: /^http\:\/\/www\.youtube\.com\/watch\?v=[a-z0-9]{11}$/i }); 

編輯:爲了驗證額外的查詢參數的鏈接,你可以使用這樣的事情:

/^http\:\/\/www\.youtube\.com\/watch\?v=[a-z0-9]{11}(&.*)?$/i 
+0

將插件的工作我使用? – 2011-03-08 23:38:02

+0

@ usr122212 - 試試吧,讓我們知道。 :-)它來自您鏈接到的頁面:http://livevalidation.com/examples#exampleFormat – gilly3 2011-03-08 23:46:05

+0

感謝您的建議@ gilly3,但它無法通過youtube鏈接進行驗證。 – 2011-03-09 00:02:21

0
link.add(Validate.Format, { pattern: /^http\:\/\/www\.youtube\.com\/watch\?v=[a-zA-Z0-9---_]{11}$/ }); 

這個作品!不知道我可以使用正則表達式來做到這一點,所以我微調了@ gilly3代碼

0

這是一個正則表達式,它可以驗證你的兩個PHP &,並且可以用於三種URL:經典(?v =) ,AJAX一個(#!v =)和短版本(youtu.be)。它也支持國際URL。

/http:\/\/(?:youtu\.be\/|(?:[a-z]{2,3}\.)?youtube\.com\/watch(?:\?|#\!)v=)([\w-]{11}).*/gi 

的代碼片段上Snipplr發現:)