`
chensong215
  • 浏览: 27212 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

flex中一个汉字做二个字节处理

    博客分类:
  • flex
 
阅读更多
众所周知textinput、textarea中有提供maxChars属性,控制输入字符的长度,但数据库中一般一个汉字点二个字节,此时,如果在界面处理长度,就需要做一个汉字做二个字节处理,就象jquery formValidator一样,在flex sdk4以上版本,提供了changing事件做处理,悲剧的是4以下版本没有这个事件,这样,就只好自己扩展StringValidator处理,以下给出完整代码

package com.common.util {


import mx.utils.StringUtil;
import mx.validators.StringValidator;
import mx.validators.ValidationResult;

/**
  * 自定义字符串检验器
  * @author chens
  * 引入汉字按照占有二个字节进行处理
  *
  */
public class CustomStringValidator extends StringValidator {
  private var _label:String;

  public function set label(label:String):void {
   this._label = label;
  }

  public function get label():String {
   return this._label;
  }

  override protected function doValidation(value:Object):Array {
   var results:Array = super.doValidation(value);

   // Return if there are errors
   // or if the required property is set to false and length is 0.
   var val:String = value ? String(value) : "";

   if (results.length > 0 || ((val.length == 0) && !required))
    return results;
   else
    return CustomStringValidator.validateString(this, value, null);
  }

  public static function validateString(validator:StringValidator, value:Object, baseField:String = null):Array {
   var results:Array = [];

   // Resource-backed properties of the validator.
   var maxLength:Number = Number(validator.maxLength);
   var minLength:Number = Number(validator.minLength);

   var val:String = value != null ? String(value) : "";

   /* 在这处理汉字占用的字节长度 */
   var target:* = validator.source;

   if (!isNaN(maxLength) && val.replace(/[^\x00-\xff]/g, "xx").length > maxLength) {
    results.push(new ValidationResult(true, baseField, "tooLong", target.label + '最多可输入' + maxLength + '个字符或' + (maxLength / 2) + '个汉字'));
    return results;
   }

   if (!isNaN(minLength) && val.length < minLength) {
    results.push(new ValidationResult(true, baseField, "tooShort", target.label + '至少输入' + minLength + '个字符或' + (minLength / 2 < 1 ? 1 : minLength / 2) + '个汉字'));
    return results;
   }

   return results;
  }

}
}

分享到:
评论

相关推荐

    Flex版的汉字拼音转换工具

    总的来说,Flex版的汉字拼音转换工具结合了pinyin4j的强大功能和Flex的灵活性,为Flex开发者提供了一个便捷的汉字拼音处理工具,使得在Flex应用中实现复杂的汉字处理功能变得更加容易。在进行项目开发时,开发者可以...

    Flex中文帮助文档,绝对实用

    - **数据绑定**: 第四章可能深入讲解了Flex中的数据绑定概念,这是Flex中一个强大的特性,允许UI组件的状态自动反映数据模型的变化,反之亦然。 - **事件处理**: 可能涵盖了事件监听器和事件处理程序的用法,解释了...

    flex 官方文档 中文教程

    本教程基于Flex官方文档,旨在为开发者提供中文版的详细学习指南,帮助理解并掌握Flex的核心概念、组件、布局、事件处理以及数据绑定等关键知识点。 1. **Flex简介** Flex是基于ActionScript 3.0和Flash Player或...

    flex 汉字转拼音

    这个"flex汉字转拼音"的主题涉及到Flex应用中处理中文字符并转换为拼音的能力,这对于开发涉及中文语音识别、搜索优化或者用户友好界面等功能的应用程序来说非常有用。 在Flex中,处理汉字转拼音通常需要利用特定的...

    Flex中文教程中文文档

    这个“Flex中文教程中文文档”显然是一份专门为中文学习者准备的资源,旨在帮助他们掌握Flex的使用。 1. **Flex概述**:Flex是一个基于Apache开源许可证的开发工具,其核心组件包括Flex SDK和Flash Builder。SDK...

    解决Flex 中文乱码

    而UTF-8则是一种可变宽度的Unicode编码,它可以使用1到4个字节来表示一个字符,对于ASCII字符,UTF-8只用一个字节,而对于中文字符,通常需要三个字节。当两种编码不匹配时,乱码就出现了。 解决Flex中文乱码问题的...

    flex与bison(中文版)带目录

    在"Flex与Bison(中文版)"这本书中,读者可以学习到如何使用这两个工具来构建自己的语言解析器。书本内容可能包括: 1. **基础概念**:介绍词法分析和语法分析的基本原理,以及编译器和解释器的工作流程。 2. **Flex...

    flex DataGrid中文字符排序类

    本文将深入分析一个针对Flex DataGrid中文字符排序的类——`SortUtil`,并探讨其背后的原理与实现细节。 #### 类概述 `SortUtil`类旨在为Flex DataGrid提供一种有效的中文字符排序机制。该类包含几个关键常量和...

    FLEX中文帮助flex中文帮助

    flex中文帮助flex中文帮助flex中文帮助flex中文帮助

    Flex 时间输入框 TimeInputEx

    在Flex编程环境中,TimeInputEx是一个自定义组件,它继承了NumericStepper类来实现一个专用于输入时间的控件。这个组件允许用户方便地输入小时、分钟和秒,为时间相关的应用程序提供了便利。让我们深入了解一下这个...

    flex3一个简单购物车拖拽的例子

    2. **DataGrid组件**:DataGrid是Flex中一种常见的数据展示组件,它可以显示二维表格数据,并支持排序、选择和编辑。在这个例子中,DataGrid被用作购物车,每个单元格可能表示一个商品,用户可以通过拖放将商品添加...

    flex 两个图片播放小程序

    综上所述,"flex 两个图片播放小程序"利用了Flex的BitmapData、Image组件、事件处理和动画机制,创建了一个能够实现图片浏览、放大和缩小功能的应用。这样的小程序在用户体验、图像处理和性能优化方面都有一定的技术...

    Flex实现的xmpp消息发送接收

    XIFF(eXtensible Internet Framework)是Flex中一个用于处理XMPP协议的库,它允许开发者在Flex应用程序中实现XMPP功能,比如创建用户会话、发送和接收消息、管理用户状态等。XIFF为Flex提供了与XMPP服务器交互的...

    flex官方经典实例

    CairngormStore这个名字暗示了这个实例可能与Cairngorm框架有关,Cairngorm是Flex中一个著名的MVC(模型-视图-控制器)设计模式实现。Cairngorm框架帮助开发者组织和管理代码,使其更加模块化和可维护。"Store"部分...

    Flex万年历记事本_flex源码

    2. **Spark和 Halo 组件**:Flex提供了两种组件库,Spark和Halo。Spark组件是Flex 4引入的新一代组件,设计更加灵活且性能优秀。万年历记事本可能使用了Spark组件来创建现代、美观的界面。 3. **Flex Builder/Flash...

    flex中文帮助文档

    这个“flex中文帮助文档”提供了对Flex技术的全面介绍和快速入门指南,旨在帮助开发者更好地理解和使用Flex进行Web应用开发。 一、Flex概述 Flex是一个基于ActionScript编程语言和MXML标记语言的开发框架,它允许...

    《Flex_help》,Flex中文帮助

    这个"Flex_help"压缩包中的中文帮助文档将覆盖以上所有知识点,包括详细的API参考、教程、示例代码等,是你学习和掌握Flex技术的好助手。通过深入学习和实践,你将能够熟练运用Flex开发出功能丰富、用户体验优秀的...

    flex与bison 中文版 第二版 高清.pdf

    flex与bison中文版(第二版) 动物书 东南大学出版社

    flex2中文学习资料

    这个“flex2中文学习资料”压缩包包含了一些关键的学习资源,帮助开发者深入理解和掌握Flex2技术。 1. **Flex2基础** Flex2是ActionScript3.0的一个开发工具集,它提供了强大的组件库、MXML标记语言以及Flex ...

Global site tag (gtag.js) - Google Analytics