¿Cómo podría hacer algo como esto?
<script type="text/javascript">
$(document).ready(function () {
if(window.location.contains("franky")) // This doesn't work, any suggestions?
{
alert("your url contains the name franky");
}
});
</script>
javascript
jquery
url
RayLoveless
fuente
fuente

"window.location.contains is not a function"Respuestas:
Necesita agregar la propiedad href y marcar en
indexOflugar decontainsfuente
window.location.hashnowindow.location.href. Simplemente cambie esos valores en la función de OP..href.indexOf("franky")puede devolver un valor de 0 si.hrefcomienza con "franky". Por supuesto, en este caso, nunca.hrefcomienza como siempre comienza con el protocolo, típicamente "http:" o "file:". A pesar de esto, SIEMPRE debe usar> -1,> = 0 o, mi preferencia,! == - 1 al comparar con el resultado deindexOf().Lo haría. Alternativamente, podría usar una expresión regular:
fuente
Usarías
indexOfasí:También observe la adición de
hrefpara la cadena de lo contrario haría:fuente
al igual que:
fuente
window.location.hrefes un alias dewindow.locationdeveloper.mozilla.org/en-US/docs/Web/API/Window.locationifdeclaración. Para asegurarse de que tiene ambos, puede usar el operador AND, que está&&en Javascript:if( window.location.href.indexOf("cart") > -1 && window.location.href.indexOf("box") > -1 )Para verificar si tiene uno u otro valor, use el operador OR, que son dos caracteres de canalización||if( window.location.href.indexOf("cart") > -1 || window.location.href.indexOf("box") > -1 )window.locationno es una cadena, pero tiene untoString()método. Entonces puedes hacerlo así:o
De los antiguos documentos de Mozilla :
fuente
La forma regex:
O en una declaración simple que podría usar:
Lo uso para probar si el sitio web se ejecuta localmente o en un servidor:
Esto verifica si href contiene
192.168olocalhostAND y es seguido por:1337.Como puede ver, usar regex tiene sus ventajas sobre las otras soluciones cuando la condición se vuelve un poco más complicada.
fuente
if(/franky/.test(location.href)) { /* regex matched */ }si no estoy haciendo nada con los partidos.testdefinitivamente es más limpio quematchen este caso.document.URLdebería conseguirte elURLyfuente
Prueba esto, es más corto y funciona exactamente como
window.location.href:también si quieres consultar la URL anterior:
fuente
document.referreres completamente irrelevante para la pregunta.Más fácil se pone
fuente
Prueba esto:
fuente
Prueba indexOf
También puede intentar buscar (para expresiones regulares)
fuente
fuente
Me gusta crear un
booleany luego usarlo de forma lógicaif.fuente
Poner en su archivo js
fuente
~, así que lo busqué: "~es un truco para convertirindexOf()el valor de retorno encontrado en verdadero (al tiempo que hace que no se encuentre como falso). De lo contrario, la gente lo usa por su efecto secundario de truncar números ..." - stackoverflow.com/a/12299678/3917091Las expresiones regulares serán más óptimas para muchas personas debido a los límites de palabras
\bo dispositivos similares. Límites de las palabras se producen cuando cualquiera de0-9,a-z,A-Z,_están en ese lado del partido, o cuando un carácter alfanumérico se conecta a la línea o al final o al principio de cadena.Si lo usa
if(window.location.href.indexOf("sam"), obtendrá coincidencias para ,flotsamysameentre otras palabras.tomcoincidiría con tomate y mañana, sin expresiones regulares.Hacerlo sensible a mayúsculas y minúsculas es tan simple como eliminar el
i.Además, agregar otros filtros es tan fácil como
Hablemos de eso
(?:\b|_). RegEx generalmente se define_como un,word characterpor lo que no causa un límite de palabra. Usamos esto(?:\b|_)para lidiar con esto. Para ver si encuentra\bo_a ambos lados de la cadena.Otros idiomas pueden necesitar usar algo como
Todo esto es más fácil que decir
Los sabores de otros idiomas de las expresiones regulares son compatibles,
\p{L}pero javascript no, lo que facilitaría la tarea de detectar caracteres extranjeros. Algo como[^\p{L}](filters|in|any|alphabet)[^\p{L}]fuente
(?#comments)y espacio libre# commentscomo javascript. Sin embargo, este no es difícil de leer. // Cuando uso una expresión regular compleja en javascript, guardo una copia comentada que puedo editar lol.Supongamos que tienes este script
Y la forma de URL es
www.localhost.com/web_form_response.html?text_input=stack&over=flowEl texto escrito
<p id="response">serástackfuente
Será una buena práctica si convierte su cadena a minúsculas o mayúsculas ya que el método indexof () distingue entre mayúsculas y minúsculas. Esto será si su búsqueda no distingue entre mayúsculas y minúsculas. Por lo tanto, para una búsqueda que no distinga entre mayúsculas y minúsculas, será:
fuente