在每封邮件前添加mailto



嘿,我有一个html表格,里面有一堆人和电子邮件地址。我想在每封邮件前加上mailto。是否有使用javascript的方法,或者最好是在vscode中使用查找/替换函数?

<tr>
<td>Mrs. john doe</td>
<td></td>
<td>first.last4@example.com</td>
<td>Principal</td>
</tr>
<tr>
<td>Mr. jerremy fields</td>
<td></td>
<td>first.last@example.com</td>
<td>Deputy</td>
</tr>
<tr>
<td>Mrs. rebecca statin</td>
<td></td>
<td>first.last@example.com</td>
<td>Deputy</td>
</tr>

我尝试使用vscode查找/替换如下:

发现:.+?..+?@example.com替换:<td>mailto:.+?..+?@example.com

发现工作,但当我尝试替换实际的' ?'被替换,而不是之前的通配符表达式

thanks in advance

您可以使用下面的代码。记住- mailto:工作,它需要在<a>

添加一个CSS类到<td>将使代码更容易维护,因为如果表结构改变,电子邮件地址仍然可以访问。

<td class="email">email@example.com</td>
const emails = document.querySelectorAll(".email");

const emails = document.querySelectorAll("tr td:nth-of-type(3)");
emails.forEach(e => e.innerHTML = '<a href="mailto:' + e.textContent + '">' + e.textContent + '</a>');
<table>
<tr>
<td>Mrs. john doe</td>
<td></td>
<td>first.last4@example.com</td>
<td>Principal</td>
</tr>
<tr>
<td>Mr. jerremy fields</td>
<td></td>
<td>first.last@example.com</td>
<td>Deputy</td>
</tr>
<tr>
<td>Mrs. rebecca statin</td>
<td></td>
<td>first.last@example.com</td>
<td>Deputy</td>
</tr>
</table>

最新更新