如题。
比如我数据库用oracle,设置字符串长度为varchar2(10),若我在前台限制输入长度为10,那么可以输入10个汉字,显然不符合要求,会超出长度。
这样的问题你们一般是怎么处理的呢?

解决方案 »

  1.   

    给你个例子,可以判断中文+英文长度
    var   v   =   "你好asd123";   
      var   len   =   0;   
      for(i=0;i<v.length;i++)   
      {   
              if(v.charCodeAt(i)>256)   
              {   
                      len   +=   2;   
              }   
              else   
              {   
                      len++;   
              }   
      }   
      alert("长度是"+len);
      

  2.   

    有没有更简单的方法呢,比如通过设置属性来做,maxlength="10"
      

  3.   

    <input type="text" maxlength="5" />
      

  4.   

    文本框中限制 maxlength 长度
     提交的时候 value.length判断
      后面接收值加 length 判断! 三层判断,比较合理的。
      

  5.   

    不是的。因为后台数据库是varchar2(10),前台输入10个汉字,插入数据库是会报错的
      

  6.   

    如果你不怕效率低点的话,可以前台不变,在用户提交的时候,直接进行插入操作,然后捕获数据库抛出的异常
    只要能在捕获到异常的时候,给用户界面一个响应或者错误提示,还是可以接受的。
    这个用Ajax吧,要不实在不太好
      

  7.   

    数据库类型改为varchar(30)就行了
      

  8.   

    不知楼主还在纠结什么,根本没有什么你想的最简单方法
    这个最简单方法就是通过charCodeAt判断中文和英文的长度,然后在js里面控制不能输超过10个字符