регулярное выражение javascript для соответствия getAttribute? - PullRequest
0 голосов
/ 10 января 2019

каждый, Я хотел бы запросить или сохранить часть страницы.

Но я не знаю, работает ли кодер. Может кто-нибудь сказать, может ли это работать так?

window._activeShopName='';
window._thisButtonHandler=this.getAttribute('data-shop-name').match(/"(.*?)"/);
    if (window._thisButtonHandler) window._activeShopName=window._thisButtonHandler[1];
    return true;

У меня проблема с матчем или лучше сказать регулярное выражение? HTML-код

  <button data-product-id="13992128" data-offer-id="31702737" data-bid-id="1387" data-bid-place="1" data-rank="3" data-shop-name="google.com" class="offer__to-seller-btn js-product-call-to-action js-redirect-click sl-redirect-click">More</button>

Спасибо

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Похоже, вы хотите просто значение data-shop-name. Если это единственная кнопка или первой кнопки на странице, есть 3 способа получить ее значение.

var btn = document.querySelector('button');

var x1 = btn.dataset.shopName;
var x2 = btn.dataset['shopName'];
var z = btn.getAttribute('data-shop-name');

console.log(x1);
console.log(x2);
console.log(z);
<button data-product-id="13992128" data-offer-id="31702737" data-bid-id="1387" data-bid-place="1" data-rank="3" data-shop-name="google.com" class="offer__to-seller-btn js-product-call-to-action js-redirect-click sl-redirect-click">More</button>
0 голосов
/ 10 января 2019

Трудно сказать, что вы хотите, но я постараюсь объяснить, что ваш код делает в данный момент:

  1. С getAttribute вы получите строку, но кавычки не являются частью этой строки (поэтому вам, вероятно, следует удалить их из RegExp).
  2. .*? означает match any character, 0 or more times, ungreedy. Таким образом, если он может совпадать с нулевыми символами и он должен быть несвязным, то он соответствует ровно нулевым символам.
...