您不一定需要 jQuery 来执行此操作,但使用 vanilla JS 需要更多的工作。首先,为您的输入提供一个 ID:
<input id="ValueField" type="text" value="" />
然后添加一个事件监听器:
var field = document.getElementById('ValueField');
field.addEventListener('keyup',function(e){
if(e.keyCode==32){
// do your stuff
}
});
检测变化的方法有一百万种,但首先想到的是一个函数:
var field = document.getElementById('ValueField');
field.addEventListener('keyup',function(e){
if(e.keyCode==32){
field.value = replaceValues(field.value);
}
});
function replaceValues(fieldval){
var baditems = [' u ',' i '],
newitems = [' you ',' I '],
length = baditems.length;
for(var i = length; i--;){
fieldval = fieldval.replace(baditems[i],newitems[i]);
}
return fieldval;
}
只需将坏项目和新项目的数组构建成与它们的订单匹配的长度相同,你应该会很好。通过这种方式,您可以替换任意数量的项目,并且运行速度应该很快。
编辑
如果我让函数返回一些东西可能会有所帮助!这是一个展示示例的 jsFiddle 。u
另外,我必须在and周围添加空格,i
否则它只会匹配字母的任何实例。