JS中的多个字符替换 - 如何在同一函数中停止对先前结果的替换

Multiple character replacements in JS - how to stop replacements on previous results within the same function

本文关键字:替换 函数 结果 字符 JS      更新时间:2023-09-26

我有一个(可能非常不干净(脚本,我打算将放入文本字段中的字母转换为具有相应路径的html图像标签。我知道可能有更简单的方法可以做到这一点,例如PHP,但是我将其用作进一步熟悉JS/Jquery的实验。我已经克服了一些障碍,取得了现在的位置,因为其中大部分对我来说都是新的领域。

在某些情况下,字母将有多个与之关联的图像,这些图像将被随机选择,因此包含几行可以执行此操作。但是,这些都很好,问题来自代码部分,该代码部分将文本字段中的字母替换为构成图像标记的文本和变量。虽然它们单独工作正常,但当我想转换多个字母时,替换会覆盖先前生成的图像标签中该字母的实例。有什么想法可以阻止吗?我尝试转移脚本发生的点,但似乎整个事情有些脆弱,无法创建可行的解决方案。

有问题的代码:

        // replace all instances within variable to generate thumbs
        final_result = result.replace(/a/g, str_start+chosen_folder+"a"+random_variation+str_end)
                             .replace(/e/g, str_start+chosen_folder+"e"+random_variation+str_end);  

JS小提琴在这里:http://jsfiddle.net/N77wZ/

提前非常感谢!

只做一个替换:

final_result = result.replace(/a|e/g, str_start+chosen_folder+"$&"+random_variation+str_end);