bueno, tengo una tabla html con un montón de personas y direcciones de correo electrónico. Quiero agregar mailto: antes de cada correo electrónico. ¿Hay alguna forma de hacer esto usando javascript, o preferiblemente una función de búsqueda/reemplazo en 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>Intenté usar un vscode buscar/reemplazar así:
Buscar: .+?..+?@example.com Reemplazar: <td>mailto:.+?..+?@example.com
La búsqueda funciona, pero cuando trato de reemplazar el '.?' se está reemplazando en lugar de la expresión comodín anterior
gracias de antemano
Puedes usar el código de abajo. Recuerde: para que mailto: funcione, debe estar en un <a>
Agregar una clase CSS a <td> hará que el código sea más fácil de mantener porque si la estructura de la tabla cambia, aún se puede acceder a las direcciones de correo electrónico.
<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>