注册 登录
编程论坛 jQuery论坛

javascript控制文本框输入字符个数的问题

菜鸟也疯狂 发布于 2008-10-27 09:21, 4480 次点击
我想通过javascript控制一个文本框,只能输入10个数字,英文字母或半角字符,5个汉字或全角字符。这是我写的一个javascript测试脚本(可直接复制调试):
<input name="test" onkeyup="strLen(name,value,10)">  
<SCRIPT LANGUAGE=javascript>
<!--
function strLen(name,value,length){
    
    if(value.replace(/[^\x00-\xff]/g,"xx").length>=length)
    {
        var html = "<input name='"+name+"' onkeyup='strLen(name,value,"+length+")' value='"+value+"' maxlength='"+value.length+"'>"
        document.all(name).outerHTML = html;
        //alert(html);
    }
}
//-->  
</SCRIPT>
可是这样写英文和数字的输入都没有问题,中文输入就有问题了。当输入5个中文以后,继续输入中文,输入的内容竟然跑到文本框外面去了(请看附件)。希望高手们帮我看看,或者有更好的方法,也请不吝赐教。

[[it] 本帖最后由 菜鸟也疯狂 于 2008-10-27 09:30 编辑 [/it]]
5 回复
#2
zsl55662008-11-27 15:05
一个中文有两个字节,,你那边的长度控制为10,其他的自然会超出
#3
zsl55662008-11-27 15:07
[\u0391-\uFFE5]这是判断中文
#4
liang1982072011-05-11 03:47
中英文分开吧,虽然你用正则式统一了长度,但是你输出的时候后面那个输出maxlength定义的是10,这控制不住的。而且你这个写法可以直接打上10个以上的字符,不会被删除。
#5
liang1982072011-05-11 03:49
闹不清楚了,我折腾了半天了,必须分开才好实现,不然就是你这样前面是5个后面就可以无限输入,因为他跟你的程序不冲突。
1