带有正则表达式的 javascript getattribute 方法

PSW
<div id="foo" platform="bar" table-index="1">
  hello!
</div>

如果我使用 getAttribute 方法并获取值,它将是这样的

var ele = document.querySelector("#foo").getAttribute("platform")

我可以通过 ele 变量获得“bar”。

但我想将 getAttribute 与正则表达式一起使用。

var ele = document.querySelector("#foo").getAttribute(`regex contains just "index"`)

单词“table-index”以索引结尾。所以我想找到属性并获得 1(table-index value) 只需使用“索引”和正则表达式。

我不知道在 attiributeName 中使用正则表达式的方法。

亚历山大·尼德

getAttribute不能以这种方式使用——它接受一个字符串作为参数,而不是一个正则表达式。但是,您可以实现一种做类似事情的方法。下面的方法通过使用attributes元素的 [ ] 属性,然后迭代它们,搜索与正则表达式匹配的元素,然后返回该值。

请注意,此特定实现天真地假设您使用的正则表达式仅匹配元素上的单个属性并返回它遇到的第一个匹配项——但是,您可以更聪明地编写一些更健壮的东西来返回一个数组匹配的属性/值对。

function getAttributeByRegex(element, regex) {
  const attributes = element.attributes;
  for (let i = attributes.length - 1; i >= 0; i--) {
    const attr = attributes[i];
    if (regex.test(attr.name)) {
      return attr.value;
    }
    return undefined;
  }  
}

const value = getAttributeByRegex(
  document.querySelector('#foo'),
  /-index/
);

console.log(value);
<div id="foo" platform="bar" table-index="1">
  hello!
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Javascript中带有正则表达式的无效组

带有表情符号的主题标签的Javascript正则表达式

使用带有不同顺序的组的正则表达式寻找正确的方法

带有匹配功能的Javascript正则表达式的困惑

只允许使用带有特定字符正则表达式的特定模式-javascript

Javascript返回字符串作为jQuery的正则表达式验证添加方法

带有星号掩码的ip地址的javascript正则表达式

Javascript中带有条件的正则表达式错误->无效的正则表达式

使用正则表达式或其他方法从字符串返回JavaScript对象

带有重复字符串的正则表达式JavaScript

寻找电话号码正则表达式模式背后的JavaScript替代方法

尝试获取带有JavaScript中正则表达式的<tr> ... </ tr>的列表

正则表达式,带有任何可选的术语,并且顺序不限(javascript或java)

如何在带有url的正则表达式字符串的javascript中查找?

对javascript函数进行非正则表达式重构的最快方法

带有jquery对象的getAttribute方法

带有变量的JavaScript正则表达式

Java中的正则表达式可从javascript方法获取参数

字符串中带有“ /”的JavaScript正则表达式

正则表达式-是否有任何简化此正则表达式(OR)的方法?

带有[x | y | z | xy | yz]的javascript正则表达式

带有全局标志的 JavaScript 中的正则表达式

Javascript - 带有字符串模板后跟 4 位数字的正则表达式?

是否可以使用javascript中的过滤方法使用正则表达式取出单词?

带有分号和空格的 JavaScript 正则表达式

javascript中带有特定字符的正则表达式

Perl:将带有贪婪量词的正则表达式转换为非贪婪的方法

JAVASCRIPT .split() 方法中的正则表达式问题

拆分方法所需的 JavaScript 正则表达式