summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/content_editor/services/mark_utils.js
blob: 6ccfed7810a1bc8eb42b969b017c5edcf9d08e47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
export const markInputRegex = (tag) =>
  new RegExp(`(<(${tag})((?: \\w+=".+?")+)?>([^<]+)</${tag}>)$`, 'gm');

export const extractMarkAttributesFromMatch = ([, , , attrsString]) => {
  const attrRegex = /(\w+)="(.+?)"/g;
  const attrs = {};

  let key;
  let value;

  do {
    [, key, value] = attrRegex.exec(attrsString) || [];
    if (key) attrs[key] = value;
  } while (key);

  return attrs;
};