2010-10-24 7 views
0

c'est ainsi que je vérifie normalement la validité de l'URL youtube en utilisant javascript. Il fonctionne très bien, mais échoue pour urls avec « - » avant l'id vidéo par exemple http://www.youtube.com/watch?v=-pIaQpwYEjYYoutube testeur d'url avec des traits d'union

tout recours que je suis peu familiarisés avec regex

var matches = $('#as_url').val().match(/^http:\/\/(?:www\.)?youtube.com\/watch\?(?=.*v=\w+)(?:\S+)?$/); 
if (matches) { 
} else { 
    error +="\nInvalid Youtube Url"; 
} 

Répondre

4

changement \w+ à [\w-]+, puisque la classe de caractères \w seulement les correspondances [A-Za-z0-9_].

Regular-Expressions.info a une bonne explication de what character classes are, ainsi que les expressions rationnelles lookahead feature, les deux que votre regex utilise.

+0

Juste fait l'amendement et l'a testé avec le même url mais il alerte l'URL de youtube invalide –

+0

+1! @Sir Lojik: Cela fonctionne! Juste testé moi-même. Il y a probablement une faute de frappe dans votre expression régulière. – jwueller

+0

cela échoue pour moi var matches = $ ('# as_url'). Val(). Match (/^http: \/\/(?: www \.)? Youtube.com \/watch \? (? =. * v = [\ w -] +) (?: \ S +)? $ /); si (correspond à) { } else { erreur + = "\ nInvalid Youtube Url"; } –

Questions connexes