To moja zrozumienie, że wszystkie te trzy linie poniżej powinien zwracać tablicę z 2 wyników w nim. Jednak RegExp zwróci tylko 1 wynik, niezależnie od tego, ile razy regex powtarza się w ciągu znaków.JavaScript RegExp nie wraca globalne wyniki
Może ktoś wyjaśnić, dlaczego? A może zasugerować, w jaki sposób mogę uzyskać RegExp, aby dać mi globalne wyniki?
//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"]
teraz co mnie naprawdę intryguje to, że jeśli spróbujesz '('New York New York') .match (/ New York/gi) 'przyniesie tylko 1 wynik (jak można się spodziewać) i nie mogę wymyślić lepszego sposobu obejścia tego (w razie potrzeby) [poza iteracją nad nim] (http: // stackoverflow. com/questions/42328875/javascript-regex-to-remove-all-numbers-with-specific-lenght-or-do-a-persistent)! :( – cregox