2010-03-26 10 views
6

He utilizado la excelente herramienta gskinner.com/RegExr/ para probar la expresión regular correspondiente a las cadenas, pero no puedo encontrar la manera de implementar esto en mi archivo JavaScript para devolver verdadero o falso.¿Cómo puedo usar JavaScript para hacer coincidir una cadena dentro de la URL actual de la ventana en la que me encuentro?

El código que tengo es el siguiente:

^(http:)\/\/(.+\.)?(stackoverflow)\. 

en un enlace como http://stackoverflow.com/questions/ask este coincidiría (según RegExr) http://stackoverflow.

Así que esto es grande porque quiero probar que coincida con el actual window.location a esa cadena, pero el problema que estoy teniendo es que este script JavaScript no funciona:

var url = window.location; 
if (url.match(/^(http:)\/\/(.+\.)?(stackoverflow)\./)) 
{ 
    alert('this works'); 
}; 

¿Alguna idea sobre lo que estoy haciendo mal aquí?

Gracias por leer.

Jannis

Respuesta

2

Si desea probar nombre de dominio (host) window.location.host le da lo que necesita (con subdominio)

if(/^(.*\.)?stackoverflow\./.test(window.location.host)){ 
    alert('this works'); 
} 
+0

¡Esto funciona genial! Muchas gracias. – Jannis

3

window.location no es una cadena; es un objeto. Utilice window.location.href

+0

Gracias por su ayuda, no pude conseguir que esto funcione, así que fui con La solución de Pawel, pero de todas formas gracias de todas maneras. – Jannis

+0

Esta es una buena respuesta, también. window.location es un objeto, .href nad .host son sus propiedades representadas como cadenas. Puede usar cualquiera de estos, pero pensé que location.host es mejor cuando solo está interesado en esta parte de la cadena de ubicación :) – pawel

+0

ah, ahora tiene sentido para mí, por lo que href devolverá la url completa mientras que el host solo irá tan lejos como 'http: // sub.domain.ext /'? – Jannis

Cuestiones relacionadas