text 文本框限制输入问题,求点击

text文本框中只需要英文和数字,但在已输入正确的文字中插入一个字符,光标就自动跳到最后,该如何解决?
如:
我在文本框中输入abde字符,现在将光标移动到bd中间插入一个c字符后,光标自动跳到e后边。请哪位大神帮忙解决一下。
话不多说,直接上代码:
style="ime-mode: disabled"
onkeyup="if(event.keyCode != 37&&event.keyCode != 39&&event.keyCode != 8){value=value.replace(/[\W]/g,'')} "
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
maxlength="7" />
导致这个问题就是onkeyup方法中的value=value.replace(/[\W]/g,''),但又不能去掉,纠结中~

因为这个造成的 value=value.replace(/[\W]/g,'');

设置value值的时候,光标就会移动到最后;
把if条件反过来,如果值正确就不设置value= ,

http://www.jb51.net/article/51102.htm

你看下这个,设置光标位置http://www.jb51.net/article/45420.htm

onkeyup="if(event.keyCode != 37&&event.keyCode != 39&&event.keyCode != 8){if(/[\W]/g.test(value)){value=value.replace(/[\W]/g,'')}} "
把代码换成这样就完美了!
感谢@qc_nj