我查看了其他页面,看看是否有办法用另一个字符替换所有出现的字符,到目前为止,我看到了在替换方法中使用正则表达式的建议,以及创建一个hashmap 来保存所有要替换的值。经过一些手指魔术后,我想到了这个:
function encodeMe(input) {
var chars = {
"f" : "o",
"o" : "b",
"a" : "r"
}
var encodedMessage = input.replace(/[^ -~]/g, function(chr) {
return (chr in chars) ? chars[chr] : "&#"+chr.charCodeAt(0)+";";
});
return encodedMessage;
}
问题是,如果我提交“foo bar”,它会返回“foo bar”而不是“obb brr”。
我显然做错了什么,但我不知道是什么。有人可以帮我吗?
最佳答案
将字符组中的-
移动到末尾:[^ ~-]
。否则你正在创建一个 range,表达式的意思是 “不匹配 (空格)和
~
之间的任何字符",其中也包括字母。
关于javascript - 如何在 JavaScript 中制作密码编码器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21358724/