Duplicata possible:
Quels caractères rendent une URL invalide?
J'essaie de supprimer la partie non URL d'une grande chaîne. La plupart des expressions rationnelles que j'ai trouvées sont comme [A-Za-z0-9-_.!~*'()]
, mais il y a plus de choses que peut contenir une URL. Comme http://127.0.0.1:8080/test?v=123#this
par exemple
Quels sont donc les derniers caractères d'une URL valide?
Tous les détails sanglants peuvent être trouvés dans le RFC actuel sur le sujet: RFC 3986 (Uniform Resource Identifier (URI): Syntaxe générique)
Sur la base de cette réponse connexe , vous consultez une liste qui ressemble à: A-Z
, a-z
, 0-9
, -
, .
, _
, ~
, :
, /
, ?
, #
, [
, ]
, @
, !
, $
, &
, '
, (
, )
, *
, +
, ,
, ;
, %
, et =
. Tout le reste doit être encodé en URL . De plus, certains de ces caractères ne peuvent exister que dans des emplacements très spécifiques d'un URI et en dehors de ces emplacements doivent être encodés en URL (par exemple %
ne peut être utilisé qu'en conjonction avec le codage url comme dans %20
), la RFC possède toutes ces spécificités.