diff options
author | zixaphir <zixaphirmoxphar@gmail.com> | 2023-09-10 00:22:10 +0000 |
---|---|---|
committer | zixaphir <zixaphirmoxphar@gmail.com> | 2023-09-10 00:22:10 +0000 |
commit | d6478a60aa7c6f96a959ca6e3b9e8d51ad22d895 (patch) | |
tree | eb98182900c82e4458800fc7f8fd9f76211e58e8 /javascript/extraNetworks.js | |
parent | 78c1a74660a2e25b3960beb42e3a6f8419c8b3c3 (diff) | |
download | stable-diffusion-webui-gfx803-d6478a60aa7c6f96a959ca6e3b9e8d51ad22d895.tar.gz stable-diffusion-webui-gfx803-d6478a60aa7c6f96a959ca6e3b9e8d51ad22d895.tar.bz2 stable-diffusion-webui-gfx803-d6478a60aa7c6f96a959ca6e3b9e8d51ad22d895.zip |
Remove extra network separator without regex
Diffstat (limited to 'javascript/extraNetworks.js')
-rw-r--r-- | javascript/extraNetworks.js | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/javascript/extraNetworks.js b/javascript/extraNetworks.js index ca87bead..ff58d3dc 100644 --- a/javascript/extraNetworks.js +++ b/javascript/extraNetworks.js @@ -140,23 +140,19 @@ function setupExtraNetworks() { onUiLoaded(setupExtraNetworks); -var re_extranet = /<([^:]+:[^:]+):[\d.]+>(.*)/; -var re_extranet_str = '<([^:]+:[^:]+):[\\d.]+>'; +var re_extranet = /<([^:^>]+:[^:]+):[\d.]+>(.*)/; +var re_extranet_g = /<([^:^>]+:[^:]+):[\d.]+>/g; function tryToRemoveExtraNetworkFromPrompt(textarea, text) { - function reEscape(s) { - return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); - } var m = text.match(re_extranet); var replaced = false; var newTextareaText; if (m) { + var extraTextBeforeNet = opts.extra_networks_add_text_separator; var extraTextAfterNet = m[2]; var partToSearch = m[1]; var foundAtPosition = -1; - var escapedSeparator = `(?:${reEscape(opts.extra_networks_add_text_separator)})?`; - var re = new RegExp(escapedSeparator + re_extranet_str, 'g'); - newTextareaText = textarea.value.replaceAll(re, function(found, net, pos) { + newTextareaText = textarea.value.replaceAll(re_extranet_g, function(found, net, pos) { m = found.match(re_extranet); if (m[1] == partToSearch) { replaced = true; @@ -166,8 +162,13 @@ function tryToRemoveExtraNetworkFromPrompt(textarea, text) { return found; }); - if (foundAtPosition >= 0 && newTextareaText.substr(foundAtPosition, extraTextAfterNet.length) == extraTextAfterNet) { - newTextareaText = newTextareaText.substr(0, foundAtPosition) + newTextareaText.substr(foundAtPosition + extraTextAfterNet.length); + if (foundAtPosition >= 0) { + if (newTextareaText.substr(foundAtPosition, extraTextAfterNet.length) == extraTextAfterNet) { + newTextareaText = newTextareaText.substr(0, foundAtPosition) + newTextareaText.substr(foundAtPosition + extraTextAfterNet.length); + } + if (newTextareaText.substr(foundAtPosition - extraTextBeforeNet.length, extraTextBeforeNet.length) == extraTextBeforeNet) { + newTextareaText = newTextareaText.substr(0, foundAtPosition - extraTextBeforeNet.length) + newTextareaText.substr(foundAtPosition); + } } } else { newTextareaText = textarea.value.replaceAll(new RegExp(text, "g"), function(found) { |