Как получить все совпадения для повторной группы в корпорации в JavaScript?Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Как получить все совпадения для повторной группы в корпорации в JavaScript?

Сообщение Anonymous »

Я пытаюсь проанализировать выражение в элементе . Я хочу сделать преобразование точек в JavaScript. < /P>
Мой первый шаг - проанализировать выражение пути. Я занимался этим с помощью корпорации (см. Ниже). Код, который я не веду, как ожидал. Он находит только последнее событие каждой группы. Как лучше всего заставить эту работу? Возможно ли с помощью Regexp? Если это единственный способ, которым Regexp может вести себя в JavaScript, я полагаю, что мне приходится соответствовать первой регуляции, а затем проведите оставшуюся основание с обычным JavaScript. Но я хотел бы сначала узнать, возможно ли это с другим кодом на основе Regexp. Я хотел бы научиться пользоваться Regexp лучше.
let path = `M4,24
L4,23
Q12,23,12, 9
L14, 9
C15, 3,25, 3,26,9
L28,9
Q28,23,36,23
L36,24
Z`

// This function does is dysfunctional
function parsePath(path) {
// To simplify the match RegExp, I simplify the path string first:
// All comma's and all whitespace characters are simplified to a simple separator space.
let path2 = path.replaceAll(/[,\s]+/g, ' ')
let rgx = /([A-Za-z])(?:(\d+)\s+)*/g

let matches = [...path2.matchAll(rgx)].map(x => {
return [x[1], x.slice(2)]
})

return matches
}

console.log(parsePath(path))
// OUTPUT:
[
[ 'M', [ '24' ] ],
[ 'L', [ '23' ] ],
[ 'Q', [ '9' ] ],
[ 'L', [ '9' ] ],
[ 'C', [ '9' ] ],
[ 'L', [ '9' ] ],
[ 'Q', [ '23' ] ],
[ 'L', [ '24' ] ],
[ 'Z', [ undefined ] ]
]
// EXPECTED AND DESIRED OUTPUT:
[
[ 'M', [ '4', '24' ] ],
[ 'L', [ '4', '23' ] ],
[ 'Q', [ '12', '23', '12', '9' ] ],
// ...
]


Подробнее здесь: https://stackoverflow.com/questions/796 ... javascript
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»