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格式

  • 相关阅读:
    vue 移动端ui框架
    vue ESLint自动修复
    vue 隐藏滚动条
    生动形象地理解async await
    vue中的slot与slot-scope
    爬虫利器 puppeteer
    vue实例的生命周期
    vue 监听滚动事件,实现动态锚点
    转:视觉中国的NoSQL之路:从MySQL到MongoDB
    转:你需要知道的NoSQL数据库10件事
  • 原文地址:https://www.cnblogs.com/louissong/p/3305287.html
Copyright © 2011-2022 走看看