文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>输入字节个数限制

输入字节个数限制

时间:2007-07-19  来源:chenqiubite

1.只能输入一定字节的字符,比如允许的最大长度是20,那么只能输入20个字母或者10个汉字(双字节的字符)。
2.允许用户用退格键,delete键以及其他的非字符键。
3.用户粘贴的时候也必须保证不会超过允许的最大长度,不能单单考虑用键盘输入。
4.以上功能是基于字节的,不是字符。
 
 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="js_limit.aspx.cs" Inherits="js_limit" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
    <script type="text/javascript">
        function checkFieldLength(fieldName,fieldDesc,fieldLength)
        {
           var str = document.getElementById(fieldName).value;
           var thelen = 0;
           for(i=0;i<str.length;i++)
           {
                //alert(str.charCodeAt(i));

                //汉字的Unicode>255

                if(str.charCodeAt(i)>255)
                {
                    thelen = thelen+2;
                }else {
                    thelen = thelen+1;
                }
           }
           document.getElementById("showMsg").innerText = thelen;
           if(thelen>fieldLength)
           {
                document.getElementById("showMsg").innerText = fieldDesc;
                document.getElementById(fieldName).value = CutStrLength(str,fieldLength);
           }else{
                return true;
           }
        }
        
        function CutStrLength(str,Ilength)
        {
            var okLen = 0;
            var len = 0;
            var tmp = 0;
            for(i=0;i<Ilength;i++)
            {
                if(str.charCodeAt(i)>255)
                    tmp+=2;
                else
                    len+=1;
                okLen+=1;
                if(tmp+len==Ilength)
                {
                    return (str.substring(0,okLen));
                    break;
                }
                if(tmp+len>Ilength)
                {
                    return (str.substring(0,okLen-1)+"");
                    break;
                }
 
            }
        }
    </script>
</head>
<body>
    <form id="form1" method="post" runat="server">
    <textarea id="testArea" name="testArea" rows="3" cols="22" onchange="checkFieldLength('testArea', '超过允许输入的字符个数', 20);" onkeyup="checkFieldLength('testArea', '超过允许输入的字符个数', 20);">
        
    </textarea>
    <div id="testInfo">
        已经输入:<span id="showMsg"></span>
    </div>
    </form>
</body>
</html>

  注:用到jscript里的一个方法:    charCodeAt 方法    返回指定字符的 Unicode 编码    stringObj.charCodeAt(index)
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载