关于正则表达式的一个问题。。。。。。急用 easyui
<input name="uaddress"
id="uaddress"
class="easyui-validatebox"
style="width:180px"
required="true"
missingMessage="必填"
validType="length[1,200]"
onkeyup="value=value.replace(/[^\u4e00-\u9fa5a-zA-Z0-9-_.\/\\:]/g,'')">
红色部分的正则表达式,输入一个非法字符会自动去掉
但是焦点在最后一位,键盘的左右键不管用了
输入时一直处在最后一位,怎么解决这种情况
------解决方案--------------------onkeyup意思是每次敲键盘后都执行。而你又用this.value=this.value.replace()不断赋值,在IE下就造成光标一直在后面(firefox等不会),所以建议你改成离开焦点再执行。
<input name="uaddress"
id="uaddress"
class="easyui-validatebox"
style="width:180px"
required="true"
missingMessage="必填"
validType="length[1,200]"
onblur="this.value=this.value.replace(/[^\u4e00-\u9fa5a-zA-Z0-9-_.\/\\:]/g,'')">
------解决方案--------------------
上面的 标签位置错了
<script>
function test(key) {
if((event.keyCode!=37)&&(event.keyCode!=38)&&(event.keyCode!=39)&&(event.keyCode!=40)){
document.getElementById('uaddress').value=key.replace(/[^\u4e00-\u9fa5a-zA-Z0-9-_.\/\\:]/g,'')
}
}
</script>
<input name="uaddress"
id="uaddress"
class="easyui-validatebox"
style="width:180px"
required="true"
missingMessage="必填"
validType="length[1,200]"
onkeyup="test(this.value)">