gpt4 book ai didi

javascript - 用新文本替换大括号

转载 作者:行者123 更新时间:2023-11-30 17:23:20 25 4
gpt4 key购买 nike

il8n = {
'en-us':{
hello:"Hello Everyone",
goodbye:"See ya later",
welcome:"Hello how are you?",
design:"Kandi Designs"
}
};
function translate(){
var userLang = navigator.language || navigator.userLanguage;
var body = document.body || document.getElementsByTagName('body')[0];
var html = body.innerHTML;
body.innerHTML = body.innerHTML.replace(/({T_(.*?)})/g, il8n[userLang.toLowerCase()][$1.replace(/{T_|},'').toLowerCase()]);
}

translate();

基本上我想做的是摆脱 {T_Hello}Hello Everyone 但是因为我不擅长正则表达式我的捕获组并使用 $1 我无法正确理解。任何人都可以为此提供一点帮助吗?

最佳答案

你的想法是正确的。但是,$1 不是您使用它的变量。将第二个参数更改为 replace 为:

function (match, $1) {
return il8n[userLang.toLowerCase()][$1.toLowerCase()];
}

replace can take a function as an argument .然后,将正则表达式中的捕获组缩短为:

/{T_(.*?)}/g

这会在替换函数中为您节省一些不必要的字符串处理。在不相关的说明中,关于性能,您可能希望服务器根据 Accept-Language header 发送适当的 il8n 对象,或者更好的是,自己进行插入而不是依赖不稳定和缓慢的客户端代码(使其可缓存)。

关于javascript - 用新文本替换大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24729960/

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