gpt4 book ai didi

javascript - 在 Javascript/jQuery 中对变量数组使用多个 .replace 调用

转载 作者:行者123 更新时间:2023-11-28 01:32:09 26 4
gpt4 key购买 nike

我正在开发一种工具,该工具可以接收从 Word 文档复制的文本,并返回 html 输出,以便将其复制/粘贴到电子邮件客户端中以进行电子邮件营销。

在此过程中,该工具需要处理的步骤之一是替换复制值中的特殊字符。输出需要显示编码值,以便当它们被复制到电子邮件客户端时,它们会在邮件发送过程中相应地呈现

问题是用户可以填充多个输入,而现在的代码非常湿...我想将工具设置得更干净一些,而不是重复经常编码。

目前,输入是通过 prompt();

提供给工具的

我将采用该输入并根据需要替换特殊字符 ™、®、Ø、´、”、' 和其他字符(本示例给出的部分列表):

JS(注释版)

msg2 = prompt("enter text here");
//long version to tag each replacement with it's identifying name
msg2 = msg2.replace(/[\u0027]/g, '''); // Apostrophe ´
msg2 = msg2.replace(/[\u2122]/g, '™'); // trademark ™
msg2 = msg2.replace(/[\u00AE]/g, '®'); // R-Ball ®
msg2 = msg2.replace(/[\u201c]/g, '"'); // Left Double Quote ‟
msg2 = msg2.replace(/[\u201D]/g, '"'); // Right Double Quote ”
msg2 = msg2.replace(/[\u2018]/g, '''); // Left Single Quote ‛
msg2 = msg2.replace(/[\u2019]/g, '''); // Right Single Quote ’
msg2 = msg2.replace(/[\u2022]/g, 'ߦ') // Bullet •

JS(简短版本)

msg2 = prompt("enter text here");

msg2 = msg2.replace(/[\u0027]/g, ''').replace(/[\u2122]/g,
'™').replace(/[\u00AE]/g, '®').replace(/[\u201c]/g,
'"').replace(/[\u201D]/g, '"').replace(/[\u2018]/g,
''').replace(/[\u2019]/g, ''').replace(/[\u2022]/g,
'ߦ');

但是...我需要在多个提示上运行相同的替换。我不想在代码中多次重复这一点,并且每个变量都根据需要进行更改。

我宁愿做的是创建一个函数来处理替换,然后简单地创建一个变量数组并在该数组上运行该函数...

示例

function txtEncode () {        
...replacment code here...
}


var inputTxt = [msg1, msg2, msg3...];
for (var i=0; i < inputTxt.length; i++){
txtEncode(i)
}

最佳答案

只需创建一个包含替换对的数组:

var replacements = [ ["&", "&amp;"], ["'", "&quot;"] etc

并一一应用它们:

replacements.forEach(function(pair) {
msg = msg.split(pair[0]).join(pair[1]);
});

split/join 比用于正则表达式的 .replace 更适合替换文字字符串。

此外,您的编码看起来不正确,® 将显示为 ®,而不是 ®

关于javascript - 在 Javascript/jQuery 中对变量数组使用多个 .replace 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22000157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com