[英]Javascript appending input fields
我有这个脚本JsFiddle,并且我尝试更改提交的字符,但是当您按ex键时: s
是ss
s
两倍,而不是显示xx
它将其更改为ss
完整代码:
<body>
<div id='out'></div>
<textarea id="in" name="messages" onkeyup="test()"></textarea>
<input type="submit" id="submit" name="submit" />
js功能:
function test(){
var origin = document.getElementById("in").value;
var send = document.getElementById("out");
if(origin =='s'){
origin = 'z';
}
send.innerHTML = origin;
}
</script>
var replacements = {
"s": "z",
// repeat for all the characters you want to replace
};
var neworigin = '';
for (var i = 0; i < origin.length; i++) {
neworigin += (origin[i] in replacements) ? replacements[origin[i]] : origin[i];
}
}
send.innerHTML = neworigin;
似乎您要在分配send
之前用z
替换所有s
字符。 您当前的代码只替换s
与z
如果origin
恰好是一个s
。 尝试以下方法:
send.innerTHML = origin.replace(/s/g, 'z');
它将在origin
中用z
替换每次出现的s
并将结果分配给send.innerHTML
。 (以防万一,您可以摆脱if
语句。)
如果要用相同的替换字符替换所有字符,可以将正则表达式从/s/g
更改为/./g
。 如果要用其他取决于字符的字符替换每个字符,则可以使用查找功能:
var mapper = function(match) {
return match === 's' ? 'z' : '?'; // or whatever mapping function you want
}
send.innerHTML = origin.replace(/./g, mapper);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.