Я пытаюсь разобрать строки с кодировкой url, которые состоят из пар ключ = значение, разделенных символом &
или &
.
Следующее будет соответствовать только первому вхождению, разбивая ключи и значения на отдельные элементы результата:
var result = mystring.match(/(?:&|&)?([^=]+)=([^&]+)/)
Результаты для строки '1111342 = Adam %20Franco & 348572 = Bob %20Jones' будут выглядеть следующим образом:
['1111342', 'Adam%20Franco']
Использование глобального флага, 'g', будет соответствовать всем вхождениям, но только возвращает полностью согласованные подстроки, а не разделенные ключи и значения:
var result = mystring.match(/(?:&|&)?([^=]+)=([^&]+)/g)
Результаты для строки '1111342 = Adam %20Franco & 348572 = Bob %20Jones' будут выглядеть следующим образом:
['1111342=Adam%20Franco', '&348572=Bob%20Jones']
В то время как я мог разделить строку на &
и разделить каждую пару ключ/значение отдельно, существует ли какой-либо способ поддержки регулярного выражения JavaScript для соответствия множественным вхождениям шаблона /(?:&|&)?([^=]+)=([^&]+)/
, аналогичному функции PHP preg_match_all()
?
Я пытаюсь каким-то образом получить результаты с разделителями, подобными следующим:
[['1111342', '348572'], ['Adam%20Franco', 'Bob%20Jones']]
или
[['1111342', 'Adam%20Franco'], ['348572', 'Bob%20Jones']]