<span name="two">text</span>
Как с помощью регулярного выражения на JavaScript вытащить из этой строки значения атрибута name
? var s = '<span toster="two">text</span>';
var el = document.createElement('div');
el.innerHTML = s;
var span = el.children[0];
var value;
var attrs = span.attributes;
for(let i = 0; i < attrs.length; i++) {
if( attrs[i].name === 'toster') {
value = attrs[i].value;
break;
}
}
if(value) {
// нашлось
}
const regex = /([^"\\]*(?:\\.[^"\\]*)*)/gm;
const str = `<span name="two">text</span>`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
console.log(/name=([\"\'])([^\"\']+)\1/.exec('<span name="two">text</span>')[2]);
function _getAttr (str, attr) {
return new RegExp(attr + "\s*=\s*([\"\'])([^\"\']+)\\1").exec(str)[2];
}
console.log(_getAttr('<span name="two">text</span>', 'name'));