为了账号安全,请及时绑定邮箱和手机立即绑定

在Javascript中匹配和替换数组中的对象

在Javascript中匹配和替换数组中的对象

BIG阳 2022-10-27 14:24:11
我想用 JavaScript 中数组中的值替换对象这是数组 replace_map = { "u0627": "A", "u0675": "A", "u0673": "A", "u0630": "Z", "u0622": "AA", "u0628": "B", "u067E": "P", "u062A": "T", "u0637": "T", "u0679": "T", "u062C": "J", "u0633": "S", "u062B": "S", "u0635": "S", "u0686": "CH", "u062D": "H", "u0647": "H", "u0629": "H", "u06DF": "H", "u062E": "KH", "u062F": "D", "u0688": "D", "u0632": "Z", "u0636": "Z", "u0638": "Z", "u068E": "Z", "u0631": "R", "u0691": "R", "u0634": "SH", "u063A": "GH", "u0641": "F", "u06A9": "K", "u0642": "K", "u06AF": "G", "u0644": "L", "u0645": "M", "u0646": "N", "u06BA": "N", "u0648": "O", "u0649": "Y", "u0626": "Y", "u06CC": "Y", "u06D2": "E", "u06C1": "H", "u064A": "E", "u06C2": "AH", "u06BE": "H", "u0639": "A", "u0643": "K", "u0621": "A", "u0624": "O", "u060C": "" };这是我的 Javascript 代码<script>$(function () {mkTool('utf16-encode', function (text) {    var encoded = punycode.ucs2.decode(text);    ret = '';    for (var i = 0; i < encoded.length; i++) {                var hex = encoded[i].toString(16);        ret += "\\u0" + hex + "";    }    const    result = ret.replace(    new RegExp(Object.keys(replacements).join('|'), 'g'),    v => replacements[v]    );    return result;        });    });             </script>我想替换 ret 返回对象"\"u0627\"u0633"匹配并从数组替换replace_map如何匹配和替换 ret 从数组返回对象
查看完整描述

1 回答

?
开满天机

TA贡献1786条经验 获得超12个赞

您可以使用对象的所有键(使用真实字符)构建正则表达式,并使用函数替换所有出现。


const

    replacements = { "\u0627": "A", "\u0675": "A", "\u0673": "A", "\u0630": "Z", "\u0622": "AA", "\u0628": "B", "\u067E": "P", "\u062A": "T", "\u0637": "T", "\u0679": "T", "\u062C": "J", "\u0633": "S", "\u062B": "S", "\u0635": "S", "\u0686": "CH", "\u062D": "H", "\u0647": "H", "\u0629": "H", "\u06DF": "H", "\u062E": "KH", "\u062F": "D", "\u0688": "D", "\u0632": "Z", "\u0636": "Z", "\u0638": "Z", "\u068E": "Z", "\u0631": "R", "\u0691": "R", "\u0634": "SH", "\u063A": "GH", "\u0641": "F", "\u06A9": "K", "\u0642": "K", "\u06AF": "G", "\u0644": "L", "\u0645": "M", "\u0646": "N", "\u06BA": "N", "\u0648": "O", "\u0649": "Y", "\u0626": "Y", "\u06CC": "Y", "\u06D2": "E", "\u06C1": "H", "\u064A": "E", "\u06C2": "AH", "\u06BE": "H", "\u0639": "A", "\u0643": "K", "\u0621": "A", "\u0624": "O", "\u060C": "" },

    string = '\u0627\u0633',

    result = string.replace(

        new RegExp(Object.keys(replacements).join('|'), 'g'),

        v => replacements[v]

    );


console.log(string);

console.log(result);


查看完整回答
反对 回复 2022-10-27
  • 1 回答
  • 0 关注
  • 209 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信