E 'la mia comprensione che tutti e tre di queste linee di seguito dovrebbe restituire un array con 2 risultati in esso. Tuttavia, RegExp restituirà solo 1 risultato, non importa quante volte la regex si ripete nella stringa.Javascript Regexp non restituire i risultati globali
Qualcuno può spiegare perché? E magari suggerire come posso ottenere RegExp per darmi risultati globali?
//INTPUT:
console.log(new RegExp("New York", "gi").exec("New York New York"));
//OUTPUT:
["New York"]
//INTPUT:
console.log(new RegExp(/New York/gi).exec("New York New York"));
//OUTPUT:
["New York"]
//INTPUT:
console.log("New York New York".match(/New York/gi));
//OUTPUT:
["New York", "New York"]
ora ciò che veramente mi intriga è che se provate '('New York New York') .match (/ new York/gi) 'che porterà solo 1 risultato (come un po previsto) e non riesco a pensare ad un modo migliore per andare in giro questo (quando altrimenti necessario) [diverso iterando su di esso] (http: // StackOverflow. com/domande/42328875/javascript-regex-to-remove-all-numeri-con-specifici-lenght-o-do-a-persistente)! :( – cregox