Pregunta

Estoy tratando de buscar cadenas llanura de edad para las direcciones URL que comienzan con http, pero todo el hallazgo de expresiones regulares que no parecen funcionar en javascript ni puedo parecen encontrar un ejemplo de esto en javascript.

Este es el que yo estoy tratando de uso de aquí y aquí :

var test = /\b(?:(?:https?|ftp|file)://www\.|ftp\.)[-A-Z0-9+&@#/%=~_|$?!:,.]*[A-Z0-9+&@#/%=~_|$]/;

Pero cuando intento ejecutarlo, me sale "símbolo inesperado |" errores.

¿Fue útil?

Solución

Ok, un comentario no parece ser suficiente, es difícil encontrar respuesta completa. Vuelvo a escribir toda expresión regular correcta: (probado, funciona bien)

var test = /\b(?:(?:https?|ftp|file):\/\/www\.|ftp\.)[-A-Z0-9+&@#\/%=~_|$?!:,.]*[A-Z0-9+&@#\/%=~_|$]/i;

El i sobre los medios finales 'ignorar caso', por lo que es necesario para esta expresión regular.

Otros consejos

Usted está utilizando / como su delimitador de expresiones regulares, y también está usando / dentro de la expresión regular (antes www), por lo que la expresión regular en realidad termina después de la primera / www antes. Cambiarlo a:

var test = /\b(?:(?:https?|ftp|file):\/\/www\.|ftp\.)[-A-Z0-9+&@#/%=~_|$?!:,.]*[A-Z0-9+&@#/%=~_|$]/;
                                     ^^^^ escape here
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top