首页 > 解决方案 > 需要正则表达式来创建一个 id 数组

问题描述

嗨,这是我的问题。

<div id='whatever'> 
<p id='1'> I am 5 years old  </p> 
<p id='3'> my mum is 40 years old </p> 
<p id='7'> check out this number 7 </p> 
<p id='8'> 78 99 46 </p> 
</div>

elem = document.getElementById("whatever").innerHTML;
target_array = elem.match(/???????????/g);

// => target_array = [1,3,7,8]

我没有找到为我提供此 target_array 的正则表达式。
(\d) (我得到了很多) (\d)?=' (没用)

标签: javascripthtml

解决方案


当您可以通过遍历 DOM 来实现时,为什么要尝试使用 RegExp 来获取它:

var ids = Array.from(document.querySelectorAll('#whatever > p'))
  .map(item => item.id);

console.log(ids);
<div id='whatever'>
  <p id='1'> I am 5 years old </p>
  <p id='3'> my mum is 40 years old </p>
  <p id='7'> check out this number 7 </p>
  <p id='8'> 78 99 46 </p>
</div>


推荐阅读