【问题标题】:javascript regex over getAttribute match?javascript正则表达式超过getAttribute匹配?
【发布时间】:2019-01-10 09:42:54
【问题描述】:

大家, 我想查询或保存页面的一部分。

但我不知道编码器是否有效。 有人可以告诉它是否可以这样工作吗?

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>

谢谢

【问题讨论】:

  • 请重新表述您的问题。目前还不清楚。

标签: javascript regex getattribute


【解决方案1】:

看起来您只想要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);
&lt;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"&gt;More&lt;/button&gt;

【讨论】:

    【解决方案2】:

    很难说你想要什么,但我会试着解释一下你的代码在做什么:

    1. 您将收到来自getAttribute 的字符串,但引号不是该字符串的一部分(因此您可能应该从 RegExp 中删除它们)。
    2. .*? 表示 match any character, 0 or more times, ungreedy。因此,如果它可以匹配零个符号并且它必须是非贪婪的,那么它恰好匹配零个符号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-29
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多