2011-08-18 37 views
40

Duplicar posible:
Which characters make a url invalid?¿Qué caracteres son válidos en una URL?

estoy tratando de eliminar la parte no URL de una cadena grande. La mayoría de las expresiones regulares que encontré son como [A-Za-z0-9-_.!~*'()], pero hay más cosas que puede contener una url. Como http://127.0.0.1:8080/test?v=123#this por ejemplo

¿Cuáles son los últimos caracteres para una URL válida?

EDIT:

que parecen ser:

A-Za-z0-9 -._ ~:?!/# [] @ $ & '() * +,; = y% seguidos por valor hexadecimal

+3

¿Has mirado el RFC? http://www.faqs.org/rfcs/rfc1738.html – ale

Respuesta

74

Todos los detalles morbosos se pueden encontrar en el RFC actual sobre el tema: RFC 3986 (Uniform Resource Identifier (URI): Generic Syntax)

Basado en this related answer, que busca a una lista que se parece a: A-Z, a-z, 0-9, -, ., _, ~, :, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, , , ; y =. Todo lo demás debe ser url-encoded. Además, algunos de estos caracteres solo pueden existir en puntos muy específicos en un URI, el RFC tiene todos estos detalles.

+5

Nota: esta lista no incluye el signo de porcentaje – thomasrutter

+4

Es correcto @thomasrutter, un% se utiliza para la codificación de URL. Un% debe representarse como% 25 para ser utilizado en un URI. De RFC: Dado que el carácter de porcentaje ("%") sirve como indicador de octetos porcentuales, debe estar codificado porcentualmente como "% 25" para que ese octeto se utilice como datos dentro de un URI. – ckittel

+6

Solo mencionar que algunos de ellos ('/', '?', '#', '&', '+') Mientras son válidos, sirven funcionalidades particulares en una URL con componente de consulta y no son tratados como simples caracteres regulares – kofifus

Cuestiones relacionadas