javascript - 如何在字符串中使用正则表达式来选择这些字符
问题描述
如何在字符串中使用正则表达式来选择这些字符。
const text = `<p height="100" width="300"><span><font color="blue" face="Times New Roman">....some content....</font></span></p>`;
我要选择的字符串是Times New Roman
解决方案
不要使用正则表达式,而是使用querySelector
导航到具有要提取的属性的元素,然后使用getAttribute
:
const font = document.querySelector('font[color="blue"]');
console.log(font.getAttribute('face'));
<p height="100" width="300">
<span><font color="blue" face="Times New Roman">....some content....</font></span>
</p>
如果您的输入是字符串而不是 HTML 元素,请先使用DOMParser
将其转换为可解析的文档:
const input = `<p height="100" width="300">
<span><font color="blue" face="Times New Roman">....some content....</font></span>
</p>`;
const doc = new DOMParser().parseFromString(input, 'text/html');
const font = doc.querySelector('font[color="blue"]');
console.log(font.getAttribute('face'));
推荐阅读
- ruby - 在 macOS 上更新 RVM、Ruby 和 Rails
- docker - 无法使用 docker ps -a 列出已停止的容器
- java - 更新区域设置不会更改低于 Build.VERSION_CODES.N (API 24) 的 Android 版本的区域设置
- android - java.lang.SecurityException:权限拒绝:启动意图
- c# - 带有附件的 Azure 函数 POST 请求
- ruby-on-rails - 连接到 Rails 服务器时 Puma mini SSL 错误
- javascript - Javascript for循环将结果返回到嵌套数组
- java - 404 状态而不是返回令牌!为什么?
- python - 熊猫用相邻的连续值替换少于 n 个连续值
- testing - 如何在 testcafe 中的真实浏览器中进行负载测试[不是基于 HTTP 的负载测试,如 JMeter]?