diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/docx/body-reader.js | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/lib/docx/body-reader.js b/lib/docx/body-reader.js index 74add0a..0d3cfb4 100644 --- a/lib/docx/body-reader.js +++ b/lib/docx/body-reader.js @@ -203,16 +203,11 @@ function BodyReader(options) { } function parseInstrText(instrText, fldChar) { - var externalLinkResult = /^\s*HYPERLINK\s+(?:"(.*)"|([^\\]\S*))/.exec(instrText); - if (externalLinkResult) { - var href = externalLinkResult[1] === undefined ? externalLinkResult[2] : externalLinkResult[1]; - return {type: "hyperlink", options: {href: href}}; - } - - var internalLinkResult = /^\s*HYPERLINK\s+\\l\s+(?:"(.*)"|([^\\]\S*))/.exec(instrText); - if (internalLinkResult) { - var anchor = internalLinkResult[1] === undefined ? internalLinkResult[2] : internalLinkResult[1]; - return {type: "hyperlink", options: {anchor: anchor}}; + var linkResult = /^\s*HYPERLINK\s+(\\l\s+)?(?:"(.*)"|([^\\]\S*))/.exec(instrText); + if (linkResult) { + var target = linkResult[2] === undefined ? linkResult[3] : linkResult[2]; + var options = linkResult[1] === undefined ? {href: target} : {anchor: target}; + return {type: "hyperlink", options: options}; } var checkboxResult = /\s*FORMCHECKBOX\s*/.exec(instrText); |
