diff options
Diffstat (limited to 'app/assets/javascripts/content_editor/services/mark_utils.js')
-rw-r--r-- | app/assets/javascripts/content_editor/services/mark_utils.js | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/app/assets/javascripts/content_editor/services/mark_utils.js b/app/assets/javascripts/content_editor/services/mark_utils.js new file mode 100644 index 00000000000..6ccfed7810a --- /dev/null +++ b/app/assets/javascripts/content_editor/services/mark_utils.js @@ -0,0 +1,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; +}; |