如何在 JS 中使用正则表达式获取字体系列的子字符串
How to get substring of font family using regex in JS
我正在尝试从表示 html 部分的字符串中获取字体系列。字体系列可以是任何字体,这就是我考虑使用正则表达式的原因。字符串也可以是 x 个字符。输入示例为:
'<body id="foo" class="bar"><span style="color: #d4d4d4;background-color: #1e1e1e;font-family: Consolas">Example Text</span></body>'
理想的结果是“Consolas”。但是我不太擅长正则表达式,无法想出合适的正则表达式。
数据以元素的字符串表示形式出现
解决方案:
感谢 terrymorse(评论)和 Gerardo Cabrera(接受的答案)!我不知道如何将 html 字符串转换为元素。能够根据他们的反馈提取字体系列
正如大家所说,使用正则表达式来尝试解析 HTML 并不是一个好主意。只需像这样使用 DOM:
// Like the user terrymorse did
let div = document.createElement('div');
div.innerHTML = '<body id="foo" class="bar"><span style="color: #d4d4d4;background-color: #1e1e1e;font-family: Consolas">Example Text</span></body>';
let children = div.children;
console.log(children[0].style.fontFamily);
您也可以使用拆分和数组函数来找到这样的 属性,但是 DOM 选项更好。
var s = '<body id="foo" class="bar"><span style="color: #d4d4d4;background-color: #1e1e1e;font-family: Consolas">Example Text</span></body>';
var x = s.split(";");
var y = x.filter(e => e.includes("font-family"))[0].split('"')[0];
var result = y.replace("font-family: ", "");
console.log(result)
我正在尝试从表示 html 部分的字符串中获取字体系列。字体系列可以是任何字体,这就是我考虑使用正则表达式的原因。字符串也可以是 x 个字符。输入示例为:
'<body id="foo" class="bar"><span style="color: #d4d4d4;background-color: #1e1e1e;font-family: Consolas">Example Text</span></body>'
理想的结果是“Consolas”。但是我不太擅长正则表达式,无法想出合适的正则表达式。
数据以元素的字符串表示形式出现
解决方案: 感谢 terrymorse(评论)和 Gerardo Cabrera(接受的答案)!我不知道如何将 html 字符串转换为元素。能够根据他们的反馈提取字体系列
正如大家所说,使用正则表达式来尝试解析 HTML 并不是一个好主意。只需像这样使用 DOM:
// Like the user terrymorse did
let div = document.createElement('div');
div.innerHTML = '<body id="foo" class="bar"><span style="color: #d4d4d4;background-color: #1e1e1e;font-family: Consolas">Example Text</span></body>';
let children = div.children;
console.log(children[0].style.fontFamily);
您也可以使用拆分和数组函数来找到这样的 属性,但是 DOM 选项更好。
var s = '<body id="foo" class="bar"><span style="color: #d4d4d4;background-color: #1e1e1e;font-family: Consolas">Example Text</span></body>';
var x = s.split(";");
var y = x.filter(e => e.includes("font-family"))[0].split('"')[0];
var result = y.replace("font-family: ", "");
console.log(result)