Выполнение сопоставлений регулярных выражений без учета регистра в JavaScript
При работе с URL-адресами часто необходимо извлечь данные из строки запроса. В JavaScript использование регулярных выражений для такого извлечения может быть простым, но обеспечение нечувствительности к регистру может оказаться сложной задачей.
В этом посте мы исследуем распространенную проблему, когда сравнение с учетом регистра может привести к противоречивым результатам. Давайте рассмотрим следующий фрагмент кода:
var results = new RegExp('[\\?&]' name '=([^&#]*)').exec(window.location.href); if (!results) { return 0; } return results[1] || 0;
Этот код предназначен для извлечения значения параметра строки запроса с именем «имя» из текущего URL-адреса. Однако он не выполняет сравнение имени строки запроса без учета регистра, что может привести к неожиданному поведению, если имя введено с другим регистром.
Чтобы решить эту проблему, мы можем использовать 'i' модификатор в нашем регулярном выражении, чтобы сделать сравнение нечувствительным к регистру. Этот модификатор следует добавить сразу после последней косой черты в регулярном выражении, как показано ниже:
var results = new RegExp('[\\?&]' name '=([^&#]*)', 'i').exec(window.location.href);
Благодаря включению модификатора 'i' регулярное выражение теперь будет игнорировать регистр имени строки запроса, гарантируя, что сравнение будет успешным независимо от регистра ввода.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3