我的页面中有不同的元素与同一个类。 所有这些元素都包含文本和数字。 我需要从所有元素中提取所有数字。
e.g。我有以下要素:
<div class="myelement">bla bla bla 123</div>
<div class="myelement">bla bla bla 456</div>
<div class="myelement">bla bla bla 789</div>
&#13;
..我需要分别提取123,456,789。 你能帮帮我吗?
非常感谢您的帮助。
答案 0 :(得分:1)
查找字符串中所有数字的一种解决方案是使用正则表达式/\d+/
:
var strings = Array.prototype.map.call(
document.getElementsByClassName('myelement'),
function(element) {
return element.innerText;
}
);
var numbers = [];
var regex = /\d+/;
strings.forEach(function(item) {
regex.exec(item).forEach(function(result) {
numbers.push(+result); // convert to a number with + prefix
});
});
console.log(numbers);
<div class="myelement">bla bla bla 123</div>
<div class="myelement">bla bla bla 456</div>
<div class="myelement">bla bla bla 789</div>
答案 1 :(得分:0)
我的提案基于Array.map:
结果是一个数组。
var result = [].map.call(document.getElementsByClassName('myelement'), function(ele, index) {
return ele.textContent.replace(/\D*/, ''); // remove all non digit
});
console.log(result)
<div class="myelement">bla bla bla 123</div>
<div class="myelement">bla bla bla 456</div>
<div class="myelement">bla bla bla 789</div>
答案 2 :(得分:0)
另一种解决方法:
var results = []
els = document.getElementsByClassName('myelement');
[].forEach.call(els, function(el) {
results.push(el.innerHTML.match(/\d+/)[0])
});
results.forEach(x => console.log(x));
<div class="myelement">bla bla bla 123</div>
<div class="myelement">bla bla bla 456</div>
<div class="myelement">bla bla bla 789</div>
答案 3 :(得分:0)
使用JQuery,您可以循环每个myelement,将字符串拆分为字符,并使用isNumeric将数字放入数组中。
$