Esiste un equivalente del preg_match_all di PHP in Javascript? In caso contrario, quale sarebbe il modo migliore per ottenere tutte le corrispondenze di un'espressione regolare in un array? Sono disposto a utilizzare qualsiasi libreria JS per renderlo più semplice.preg_match_all equivalente JS?
risposta
È possibile utilizzare match
con il modificatore globale:
>>> '1 2 3 4'.match(/\d/g);
["1", "2", "3", "4"]
John Resig ha scritto su una grande tecnica sul suo blog chiamato 'Search and dont replace'
Funziona tramite javascript della funzione, che prende un callback sostituire funzione, e non restituisce nulla per lasciare inalterato il contenuto originale.
Questo può essere più ordinario rispetto all'utilizzo di una corrispondenza globale e l'iterazione su una serie di risultati, soprattutto se si acquisiscono più gruppi.
Un equivalente migliore di preg_match_all da PHP in JS sarebbe utilizzare la funzione exec(). Questo ti permetterà di catturare anche i gruppi, con match() non puoi farlo.
Per esempio si desidera catturare tutti i tempi e il numero tra parentesi dal myString variabile:
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]);
}
L'output sarà:
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
- 1. preg_match_all in semplice array
- 2. Multiple jolly preg_match_all php
- 3. PHP preg_match_all, Check & esplodere
- 4. JS: Touch equivalente per mouseenter
- 5. Come preg_match_all() elabora le stringhe?
- 6. JS DOM equivalente per JQuery accodare
- 7. jQuery `index()` equivalente in Vanilla JS
- 8. Equivalente JS puro di Jquery eq()
- 9. espressioni regolari in PHP con preg_match_all
- 10. Da cosa dipende l'indicatore preg_match_all `u`?
- 11. Equivalente al selettore "non" di jQuery in D3.js?
- 12. PHP: Come ottengo gli indici di stringa di un preg_match_all?
- 13. Il raggruppamento atomico Regex non sembra funzionare in preg_match_all()
- 14. ottenere e-mail dalla stringa - sintassi regex + preg_match_all
- 15. jquery equivalente per JSON.stringify
- 16. Cloudkit JS && Node JS
- 17. risultato js vs. breeze js
- 18. Esiste un equivalente della funzione __noSuchMethod__ per le proprietà o un modo per implementarlo in JS?
- 19. Vue equivalente di setTimeOut?
- 20. __LINE__ equivalente in Java?
- 21. equivalente JavaScript per PHP preg_replace
- 22. Equivalente FileOutputStream
- 23. CountDownLatch Equivalente
- 24. Come restituire solo i gruppi con nome con preg_match o preg_match_all?
- 25. Differenza tra nodo js ed express js
- 26. Richiedi js backbone JS global models
- 27. Componente angolare2 caricamento file js esterno js
- 28. Momento js con React js (ES6)
- 29. equivalente CouchDB di Sql NOT IN?
- 30. jQuery equivalente del metodo addEventListener di JavaScript
non ho capito che la sintassi. – erm3nda
@ erm3nda penso **/\ d/g ** non hai capito. Qui [Creazione di un'espressione regolare in Javascript] (https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions). –