zoukankan      html  css  js  c++  java
  • 限制文本框字符数

    创建角色要求字符数不能超过6个,我之前的做法是

    label.maxChars = 6;
    

    这样设置,不管是中文还是英文,都只能输入6个字符。如果是中文6个字符,肯定是足够了,但是英文,比如我自己的名字LouisSong,就有点不够了。

    测试之后发现用以下代码可以解决:

    label.addEventListener(Event.CHANGE,onChange);
    label.addEventListener(TextEvent.TEXT_INPUT,onInput);
    
    private var tempStr:String = '';
    private var bytes:ByteArray = new ByteArray();
    private function onInput(event:TextEvent):void
    {
         tempStr = label.text;
    }
            
    private function onChange(event:Event):void
    {
        bytes.length = 0;
        bytes.writeMultiByte(label.text,'gbk');
        if(bytes.length > 12)
        {
            label.text = tempStr;
        }
    }

    其中TextInput事件会在按下键盘,label里面的文字改变的时候触发,此时oninput函数运行的时候,label的文字还没改变。
    change事件会在label的文字改变后触发。

    这里说一下几种编码格式的区别:

    utf-8使用中文就会占用3个字节,英文的话只有一个字节
    unicode中英文都是2个字节
    gbk中文2个字节,英文1个字节

     所以,我在这里选择了gbk格式

  • 相关阅读:
    day05 集合
    day05 判断敏感字符
    day05 None类型
    day05 字典
    day04元组
    day04列表
    HDFS配额管理(实战)
    hive数据库的哪些函数操作是否走MR
    oracle 裸设备划分 --centos6.5
    redis3.0.7集群部署手册
  • 原文地址:https://www.cnblogs.com/louissong/p/3305287.html
Copyright © 2011-2022 走看看