Sto cercando di analizzare le stringhe con codifica URL composte da coppie chiave = valore separate da &o &.
Quanto segue corrisponderà solo alla prima occorrenza, suddividendo le chiavi e i valori in elementi di risultato separati:
var result = mystring.match(/(?:&|&)?([^=]+)=([^&]+)/)
I risultati per la stringa '1111342 = Adam% 20Franco & 348572 = Bob% 20Jones' sarebbero:
['1111342', 'Adam%20Franco']
L'uso del flag globale, 'g', corrisponderà a tutte le occorrenze, ma restituirà solo le sottostringhe con corrispondenza completa, non le chiavi e i valori separati:
var result = mystring.match(/(?:&|&)?([^=]+)=([^&]+)/g)
I risultati per la stringa '1111342 = Adam% 20Franco & 348572 = Bob% 20Jones' sarebbero:
['1111342=Adam%20Franco', '&348572=Bob%20Jones']
Mentre potrei dividere la stringa &e spezzare ciascuna coppia chiave / valore singolarmente, esiste un modo per utilizzare il supporto delle espressioni regolari di JavaScript per abbinare più occorrenze del modello /(?:&|&)?([^=]+)=([^&]+)/simile alla preg_match_all()funzione di PHP ?
Sto cercando un modo per ottenere risultati con le sotto-partite separate come:
[['1111342', '348572'], ['Adam%20Franco', 'Bob%20Jones']]
o
[['1111342', 'Adam%20Franco'], ['348572', 'Bob%20Jones']]
replacequi.var data = {}; mystring.replace(/(?:&|&)?([^=]+)=([^&]+)/g, function(a,b,c,d) { data[c] = d; });fatto. "matchAll" in JavaScript è "sostituisci" con una funzione di gestione sostitutiva anziché una stringa.