`
caiyi
  • 浏览: 17697 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

AS3文本输入框限制输入:12个字符或6个中文(中英文夹杂)

    博客分类:
  • as3
 
阅读更多

  1. 这个功能在很多地方都需要用到,会令人头疼的地方就是中英文夹杂的时候无法处理,下面是我自己通过google查询和自己编写的结果:  
  2.   
  3. 首先设置maxChars 这个属性,它控制文本框输入的字符长度,在as3中,一个中文和一个字母的长度都是1,但实际上一个中文是2个字节,1个英文是一个字节!  
  4.   
  5. 设置restrict = "a-zA-Z\u4e00-\u9fa5",这样是代表只能够输入大小写的英文字母和中文  
  6.   
  7. 以上设置可以保证文本的长度和合法性,但是无法达到 12个字符或6个中文(中英文夹杂) 的条件,所一下面我们再加上一步操作:  
  8.   
  9. //获取字符串的字节数  
  10.   
  11. private function getStringBytesLength(str:String,charSet:String):int  
  12.    {  
  13.      
  14.     var bytes:ByteArray = new ByteArray();  
  15.      
  16.     bytes.writeMultiByte(str, charSet);  
  17.      
  18.     bytes.position = 0;  
  19.      
  20.     return bytes.length;  
  21.      
  22.    }  
  23.   
  24. 给文本输入框加上一个事件:  
  25.   
  26. inputTxt.addEventListener(TextEvent.TEXT_INPUT, __nameInputEvent);  
  27.   
  28. private function __nameInputEvent(e:TextEvent):void  
  29.    {  
  30.      
  31.       if((getStringBytesLength(__nameInput.text,"gb2312") +  
  32.   
  33.             getStringBytesLength    (e.text,'gb2312')) > __nameInput.maxChars)  
  34.       {  
  35.          e.preventDefault();  
  36.        return;   
  37.     }  
  38.    }  
  39.   
  40. 这样就完成了!上面是在flash ide 下可以实现的,但是在flex中,TextEvent.TEXT_INPUT 这个事件是不管用的,无法e.preventDefault();所以我继续查资料,然后通过下面的方法,在flex中实现了这个功能:  
  41.   
  42. //这是组件  
  43.   
  44. <s:TextInput x="100" y="65" id="txt_name" width="105" enabled="true" changing="__nameChangingEvent(event)"/>  
  45.   
  46. //这是需要设置的两个属性  
  47.   
  48. txt_name.restrict = "a-zA-Z\u4e00-\u9fa5";  
  49. txt_name.maxChars = 12;  
  50.   
  51. //下面是用到的操作  
  52.   
  53. /** 
  54.     * 姓名输入事件 
  55.     *  
  56.     */   
  57.     protected function __nameChangingEvent(event:TextOperationEvent):void  
  58.     {  
  59.      if((event.operation as InsertTextOperation)==null)  
  60.      {  
  61.       return;  
  62.      }  
  63.       
  64.      var input:String=(event.operation as InsertTextOperation).text;  
  65.       
  66.      if((__getStringBytesLength(txt_name.text,"gb2312") + __getStringBytesLength(input,'gb2312')) > txt_name.maxChars)  
  67.      {  
  68.       event.preventDefault();  
  69.      }  
  70.     }  
  71.      
  72.      
  73.     /** 
  74.     * 获取该字符串的字节数  
  75.     */   
  76.     private function __getStringBytesLength(str:String,charSet:String):int  
  77.     {  
  78.      var bytes:ByteArray = new ByteArray();  
  79.       
  80.      bytes.writeMultiByte(str, charSet);  
  81.       
  82.      bytes.position = 0;  
  83.      return bytes.length;  
  84.       
  85.     }  

  转自http://cloud21.iteye.com/blog/745749


分享到:
评论

相关推荐

    iOS限定文本输入框输入特定字符个数(完整Demo源码)

    3、特色功能: iOS限制联想字符串输入,汉字占2个字符,英文占1个字符,解决的中英文切换输入法联想导致的bug 4、demo需求:风险商户处理界面提供`情况说明`输入框,限制输入100个字符 5、private repositories :...

    多行文本输入框字数限制代码

    在网页设计中,多行文本输入框(通常是`&lt;textarea&gt;`元素)经常用于收集用户的大段文字输入。然而,为了确保数据的有效性和页面布局的稳定性,我们有时需要对输入的字数进行限制。本篇文章将深入探讨如何使用...

    Android控制文本输入框最多输入10个字符长度

    Android 控制文本输入框最多输入 10 个字符长度是 Android 开发中常见的需求,主要是为了限制用户输入的字符数量,以免输入框中的数据过长,从而影响应用程序的性能和用户体验。 知识点 1:使用 android:maxLength ...

    Android限制只能输入中文的EditText

    在Android开发中,有时我们需要对用户输入进行特定的限制,比如仅允许用户输入中文字符。在这种情况下,我们可以使用EditText控件并对其进行定制,确保输入的内容符合预期。以下是如何实现Android限制只能输入中文的...

    网页自动填表——文本输入框及多行文本输入框

    网页自动填表技术主要是利用自动化工具或脚本来识别网页中的表单元素(如文本输入框、多行文本输入框等),并通过编程方式自动填充这些表单元素,从而实现表单的自动化填写过程。 #### 三、网页自动填表的基本步骤 ...

    Js高亮显示文本输入框.rar

    在JavaScript编程中,高亮显示文本输入框是一个常见的需求,特别是在开发富文本编辑器、代码编辑器或搜索功能时。这个“Js高亮显示文本输入框.rar”压缩包可能包含了实现这一功能的相关代码和资源。下面我们将深入...

    Android EditText 正则表达式 限制数字、字母、字符 输入 密码框

    在`EditText`中限制数字、字母和字符的输入,主要是为了创建一个安全的密码输入框,防止用户输入不符合规则的字符。以下是一些相关的知识点: 1. **正则表达式基础**: - **字符集**:`[abc]`表示匹配a、b或c中的...

    自定义弹出输入框(输入长度限制).zip

    标题“自定义弹出输入框(输入长度限制)”表明我们关注的是一个特定的输入框控件,它不仅具有标准的输入功能,还增加了弹出式显示效果以及字符长度的限制。这通常用于优化用户在有限空间内进行文本输入的场景,比如...

    ios-这是一个文本输入限制字数的通用输入框控件,简单实用。.zip

    这个名为“ios-这是一个文本输入限制字数的通用输入框控件,简单实用”的压缩包提供了一个解决方案,允许开发者轻松实现对用户输入字数的限制。这个控件简化了处理文本输入长度的复杂逻辑,确保用户不会超过预设的...

    限制 输入框字符长度 适用于中英文

    在网页开发中,限制用户在输入框(Input)中输入的字符长度是一项常见的需求,尤其在数据验证或者信息填写时。本示例中,我们探讨了两种JavaScript方法来实现这一功能,分别针对英文、数字以及中文字符。 1. **...

    解决webgl输入框无法输入中文插件

    总的来说,解决WebGL输入框无法输入中文的问题,需要理解WebGL与浏览器交互的机制,以及如何利用特定的插件或自定义解决方案来克服这个限制。对于开发人员来说,这既是技术挑战,也是对创新和问题解决能力的考验。

    控制输入框只能输入数字

    3. **选中文本处理**:如果用户选中了一段文本并尝试输入新字符,需确保新字符与选中的文本合并后仍然满足输入限制规则。 4. **多语言支持**:如果应用需要支持多种语言环境,还需考虑不同语言环境下输入法切换的...

    swift-UITextfield输入框限制的功能封装

    在Swift开发中,`UITextField`是用户界面中用于接收单行文本输入的重要控件。为了增强用户体验和确保数据的有效性,我们经常需要对`UITextField`进行功能封装,使其具有特定的输入限制。"swift-UITextfield输入框...

    一个漂亮文本输入框.rar

    在IT领域,文本输入框是用户界面设计中的基本元素,用于接收用户的文本输入。这个"一个漂亮文本输入框.rar"的资源可能包含了一个独特设计或具有特定特效的文本输入框示例,适用于网页、应用程序或者桌面软件的界面...

    Javascript学习-限制多行文本输入框的字符数.doc

    在上述代码中,`maxlength3`函数会在用户松开键盘键时被调用,它首先检查当前文本框中的字符数,如果超过5个,就将文本截断为前5个字符,从而达到限制多行文本输入框字符数的目的。 这种解决方案兼顾了输入限制和...

    VBA 限制输入中文或只能输入数字

    VBA 限制输入中文或只能输入数字 在 Excel 自动化中,经常需要对用户的输入进行限制,以确保数据的准确性和一致性。VBA 提供了多种方式来限制用户的输入,本文将介绍如何使用 VBA限制输入中文或只能输入数字。 ...

    输入框集合

    在IT行业中,输入框是用户界面(UI)设计中不可或缺的一部分,它允许用户输入文本数据。"输入框集合"这个项目显然聚焦于收集和整合多种类型的输入框,以供测试和开发人员使用。这个资源对那些正在开发或测试应用程序...

    MFC限制编辑框输入的字符类型

    在MFC(Microsoft Foundation Classes)框架中,我们经常需要对用户在编辑框(CEdit类)中的输入进行控制,确保其只能输入特定类型的字符。这通常涉及到文本验证,以防止非法字符的输入或者保证数据的格式正确。本...

    vc获取网页中输入的密码框中的内容和文本输入框的内容.zip

    这个"vc获取网页中输入的密码框中的内容和文本输入框的内容.zip"项目显然涉及到如何通过C++代码来实现这一功能。下面我们将深入探讨相关知识点。 首先,C++本身并不直接支持对网页内容的直接访问,但可以通过第三方...

    VC++限制编辑框输入文本的长度

     VC++限制编辑框输入文本的长度,也就是像WEB表单中的输入框功能类似,限制用户输入字符的数量,这样可以预防用户输入了超过规定限制的字符数量,有效避免程序出错。在本例的输入框中,中允许用户输入7个字符,再多...

Global site tag (gtag.js) - Google Analytics