Pregunta

Muchos sitios web admiten etiquetas de folksonomía. Es posible que haya oído hablar de rel-tag , donde dice que " El último componente de ruta de la URL es el texto de la etiqueta " ;.

Estoy buscando un script bookmarklet o greasemonkey (javascript) para obtener el " último componente de ruta " para la URL que se está viendo actualmente en el navegador, agregue esa etiqueta a otra URL y luego abra esa página en una nueva pestaña o ventana.

Por ejemplo, si estoy mirando una página delicious.com con la etiqueta " foo " , Es posible que desee crear una nueva URL con la etiqueta " foo " . Esto también debería funcionar para múltiples etiquetas en el último componente de la ruta, como foo + bar .

Se han ofrecido algunas sugerencias de expresiones regulares .

¿Fue útil?

Solución

Dado que está usando JavaScript, no hay necesidad de preocuparse por los nombres de host, las cadenas de consulta, etc., solo use location.pathname para llegar al punto importante.

Por ejemplo:

var NewUrl = 'http://technorati.com/tag/';
var LastPart = location.pathname.match( /[^\/]+\/?$/ );
window.open( NewUrl + LastPart );

Eso permite una posible barra inclinada final.

Puede usar / [^ \ /] + \ $ / para no permitir las barras diagonales finales, o / [^ \ /] + \ / * $ / para cualquier número de ellos.

Otros consejos

Si puede asumir que ambas URL son válidas, puede obtener la etiqueta de la primera URL con esta expresión regular:

^[a-z]+://[^/#?]+/[^#?]*?([^#?/]+)(?:[#?]|$)

El primer (y único) grupo de captura contendrá la etiqueta. Esta expresión regular no coincidirá con las URL que no tengan etiquetas.

Para agregar la etiqueta a otra URL, busque la expresión regular:

^([^#?]*?)/?(?:[#?]|$)

y reemplazar con:

$1/tag

Esta expresión regular se asegura de no terminar con dos barras adyacentes en la URL si la ruta de la URL original termina con una barra.

implementación, como en la configuración de los servidores, ¿todo ese jazz? No estoy muy bien informado sobre esas cosas = \ ahh que suena

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top