¿Hay un equivalente de preg_match_all de PHP en Javascript? Si no, ¿cuál sería la mejor manera de obtener todas las coincidencias de una expresión regular en una matriz? Estoy dispuesto a utilizar cualquier biblioteca JS para que sea más fácil.preg_match_all equivalente JS?
13
A
Respuesta
18
Puede utilizar match
con el modificador mundial:
>>> '1 2 3 4'.match(/\d/g);
["1", "2", "3", "4"]
10
John Resig ha escrito sobre una gran técnica en su blog llamado 'Search and dont replace'
Funciona utilizando la función de JavaScript, que tiene una devolución de llamada reemplazan función, y no devuelve nada para dejar inalterado el contenido original.
Esto puede ser más útil que usar una coincidencia global e iterar sobre una matriz de resultados, especialmente si está capturando varios grupos.
1
Un mejor equivalente de preg_match_all de PHP en JS sería usar la función exec(). Esto le permitirá capturar grupos también, con match() no puede hacer eso.
Por ejemplo, usted desea capturar todos los tiempos y el número entre paréntesis de la miCadena variables:
var myString = "10:30 am (15 left)11:00 am (15 left)11:30 am";
var pattern = /(\d{1,2}:\d{1,2}\s?[ap]m)\s\((\d+)/gi;
var match;
while (match = pattern.exec(myString)){
console.log('Match: "' + match[0] + '" first group: -> "' + match[1] + '" second group -> ' + match[2]);
}
La salida será:
Match: "10:30 am (15" first group: -> "10:30 am" second group -> 15
Match: "11:00 am (15" first group: -> "11:00 am" second group -> 15
Cuestiones relacionadas
- 1. ¿Cómo preg_match_all() procesa cadenas?
- 2. caracteres UTF-8 en preg_match_all (PHP)
- 3. PHP `` preg_match_all` funcionalidad en Java
- 4. preg_match_all y preg_replace en Ruby
- 5. JS DOM equivalente para jQuery anexar
- 6. Obtener el número de línea de preg_match_all()
- 7. ¿De qué depende el indicador preg_match_all `u`?
- 8. ¿Equivalente del selector 'no' de jQuery en D3.js?
- 9. PHP: ¿Cómo obtengo los índices de cadena de un preg_match_all?
- 10. Cómo devolver solo los grupos con nombre preg_match o preg_match_all?
- 11. JavaScript equivalente de preg_replace PHP
- 12. Lenguaje de plantillas JS JS
- 13. upshot js vs breeze js
- 14. Is Array (5) es equivalente a var a = []; a.length = 5; en JS?
- 15. ¿Cuál es el equivalente de Objective-C de la función `map()` de JS?
- 16. Relación entre HandleBar js y Moustache js
- 17. ¿Hay dos contrapartes JS en TRES JS
- 18. Requerir js backbone JS global models
- 19. coincidencia de una línea en JS regex
- 20. ¿Hay variables globales en EXT JS
- 21. JavaScript equivalente para PHP preg_replace
- 22. ¿Cómo debo incluir un archivo js de otro archivo js?
- 23. cómo acceder a js gama definida en otro archivo js
- 24. jquery: cómo incluir otros archivos .js en .js
- 25. Diferencia entre el nodo js y el js expreso
- 26. js presenciales vs. js funcionales: ¿separarlos? Arquitectura general?
- 27. Buena codificación: archivos js modulares o un archivo js grande?
- 28. Archivo JS de referencia en Otro archivo JS e Intellisense
- 29. Incluyendo un archivo .js dentro de un archivo .js
- 30. ¿Cómo incluir el archivo js en otro archivo js?
yo no entendía que la sintaxis. – erm3nda
@ erm3nda, creo **/\ d/g ** es que no entendiste. Aquí [Creación de una expresión regular en Javascript] (https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions). –