Estoy usando javascript de script en la aplicación de expresiones regulares. Intento obtener solo el primer valor o el segundo valor de cada tabla, pero no funciona.
<table> <td class="bar"> <td class="center">hello1</td> <td class="center">hello2</td> <td class="center">hello3</td> </td> </table> <table> <td class="bar"> <td class="center">hello1</td> <td class="center">hello2</td> <td class="center">hello3</td> </td> </table> mi expresión regular de código: /(?<=<td class=\"center\">).*?(?=<\/td>)/gi
este código selecciona todos los valores Hola. Solo quiero seleccionar Hello1 de la primera tabla td y la segunda tabla td. Elimino global pero me da solo el primer td de la primera tabla.
el valor hola es dinámico, no fijo.
Podrías hacer una expresión regular como esta que recupera el texto que esperas...
Esencialmente, hacer coincidir las etiquetas excluyendo <> caracteres dentro de la etiqueta.
Sin embargo, creo que una forma más fácil y menos propensa a errores de hacer esto en JavaScript y DOM es usar querySelectorAll en su lugar, por ejemplo...
let c = document.querySelectorAll('td:nth-of-type(2)'); console.log(Array.from(c).map(i => i.innerText)); <table> <td class="bar"> <td class="center">hello1</td> <td class="center">hello2</td> <td class="center">hello3</td> </td> </table> <table> <td class="bar"> <td class="center">hello1</td> <td class="center">hello2</td> <td class="center">hello3</td> </td> </table>