¿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
indexOf
lugar decontains
fuente
window.location.hash
nowindow.location.href
. Simplemente cambie esos valores en la función de OP..href.indexOf("franky")
puede devolver un valor de 0 si.href
comienza con "franky". Por supuesto, en este caso, nunca.href
comienza 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
indexOf
así:También observe la adición de
href
para la cadena de lo contrario haría:fuente
al igual que:
fuente
window.location.href
es un alias dewindow.location
developer.mozilla.org/en-US/docs/Web/API/Window.locationif
declaració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.location
no 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.168
olocalhost
AND 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.test
definitivamente es más limpio quematch
en este caso.document.URL
debería conseguirte elURL
yfuente
Prueba esto, es más corto y funciona exactamente como
window.location.href
:también si quieres consultar la URL anterior:
fuente
document.referrer
es 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
boolean
y 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
\b
o 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 ,flotsam
ysame
entre otras palabras.tom
coincidirí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 character
por lo que no causa un límite de palabra. Usamos esto(?:\b|_)
para lidiar con esto. Para ver si encuentra\b
o_
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# comments
como 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=flow
El texto escrito
<p id="response">
serástack
fuente
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