Realización de coincidencias de expresiones regulares que no distinguen entre mayúsculas y minúsculas en JavaScript
Cuando se trabaja con URL, a menudo es necesario extraer datos de la cadena de consulta. En JavaScript, usar expresiones regulares para realizar esta extracción puede ser sencillo, pero garantizar que no se distingan entre mayúsculas y minúsculas puede ser un desafío.
En esta publicación, exploramos un problema común en el que una comparación que distinga entre mayúsculas y minúsculas podría generar resultados inconsistentes. Consideremos el siguiente fragmento de código:
var results = new RegExp('[\\?&]' name '=([^&#]*)').exec(window.location.href); if (!results) { return 0; } return results[1] || 0;
Este código está destinado a extraer el valor de un parámetro de cadena de consulta llamado 'nombre' de la URL actual. Sin embargo, no realiza una comparación que no distingue entre mayúsculas y minúsculas para el nombre de la cadena de consulta, lo que podría dar como resultado un comportamiento inesperado si el nombre se ingresa con mayúsculas y minúsculas diferentes.
Para resolver este problema, podemos utilizar la 'i' modificador en nuestra expresión regular para que la comparación no distinga entre mayúsculas y minúsculas. Este modificador debe agregarse inmediatamente después de la última barra diagonal en la expresión regular, como se ve a continuación:
var results = new RegExp('[\\?&]' name '=([^&#]*)', 'i').exec(window.location.href);
Al incluir el modificador 'i', la expresión regular ahora ignorará las mayúsculas y minúsculas del nombre de la cadena de consulta, asegurando que la comparación será exitosa independientemente del formato de la entrada.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3