ajax полное событие: сопоставить URL с регулярным выражением - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь запустить функцию после выполнения определенного запроса ajax. Поскольку на сайте делается несколько запросов, я фильтрую тот, который мне нужен, с помощью settings.url, как в официальной документации:

$( document ).ajaxComplete(function( event, xhr, settings ) {
  if ( settings.url === "ajax/test.html" ) {
    $( ".log" ).text( "Triggered ajaxComplete handler. The result is " +
      xhr.responseText );
  }
});

Фактический url выглядит примерно так https://example.com/page?ids=%2C1%2C2%2C Все после ?ids= меняется от запроса к запросу.

Теперь приведенный выше код срабатывает только в том случае, если settings.url точно такой же, как в запросе, включая идентификатор.

if ( settings.url === "https://example.com/page?ids=%2C1%2C2%2C" )

Поэтому мне нужно сопоставить settings.url с https://example.com/page?ids= и подстановочным знаком в конце, поскольку идентификаторы не важны.

Было бы это возможно с помощью регулярных выражений?

Ответы [ 2 ]

0 голосов
/ 10 февраля 2020
let regex = /[^ ]*pageids=[^ ]*/;

if (settings.url.match(regex)) {
  console.log('triggered');
  console.log(settings.url);
}

Сейчас работает. Я забыл заменить settings.url=== на settings.url.match().

0 голосов
/ 10 февраля 2020

Если вы хотите сделать это с помощью regex, вы можете использовать Regex для анализа URL-адреса ( Что такое правильное регулярное выражение для соответствия URL-адресу? ) и завершить sh его разделителем, в ваш случай =.

(www|http:|https:)+[^\s]+[\w]=
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...