`

Flex个人知识库(4)正则表达式

阅读更多
1、 自定义的进度条
<?xml version="1.0" encoding="utf-8"?>
<s:HGroup xmlns:fx="http://ns.adobe.com/mxml/2009" 
				xmlns:s="library://ns.adobe.com/flex/spark" 
				xmlns:mx="library://ns.adobe.com/flex/mx" 
				xmlns="library://ns.apuisc.com/flex"
				width="220" left="5" verticalAlign="middle"
				xmlns:local="*"
				>
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import spark.components.Label;
			[Bindable]
			public var percentageBarBgColor:uint = uint("0x04dc04");
			[Bindable]
			public var percent:int=60;
			[Bindable]
			public var detail:String="使用率";
			
		]]>
	</fx:Script>
	<local:HPercentageBar id="percentageBar" width="40%" height="20" bgColor="{percentageBarBgColor}" percent="{percent}"/>
	<s:Label width="60%" height="100%" id="label" text="{detail}" paddingLeft="3" paddingRight="3" paddingBottom="3" paddingTop="3"/>
</s:HGroup>


<?xml version="1.0" encoding="utf-8"?>
<s:BorderContainer xmlns:fx="http://ns.adobe.com/mxml/2009" 
		  xmlns:s="library://ns.adobe.com/flex/spark" 
		  width="100%" height="100%" borderWeight="1">
	<s:layout>
		<s:HorizontalLayout verticalAlign="middle" gap="10"/>
	</s:layout>
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			[Bindable]
			public var bgColor:uint = uint("0x04dc04");
			[Bindable]
			public var percent:int;
			
		]]>
	</fx:Script>
	<s:Rect percentWidth="{percent}" percentHeight="100" alpha="0.8f" >
		<s:fill >
			<s:SolidColor color="{bgColor}" />
		</s:fill>
	</s:Rect>
</s:BorderContainer>


2、 常用正则表达式
public class StringHelper {
		
		public function StringHelper() {
		}
		
        public static function getRequestId():String {
            var currentUserId:String = SessionManager.getInstance().user.id;
            return currentUserId + "_" + new Date().time;
        }
		
		public static function isEmpty(str:String):Boolean {
			return str == null || StringUtil.trim(str).length == 0;
		}
        
        public static function validateNumber(str:String):Boolean {
            var pattern:RegExp = /^[0-9a-zA-Z]{1,40}$/;
            var result:Object = pattern.exec(str);
            if(result == null) {
                return false;
            }
            return true;
        }
        
        public static function validateEmail(str:String):Boolean {
			var pattern:RegExp =  /^[a-zA-Z0-9_-]+@[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+$/;
            var result:Object = pattern.exec(str);
            if(result == null) {
                return false;
            }
            return true;
        }
        public static function validatePhoneNumber(str:String):Boolean {
			var pattern:RegExp = /^(\d{11}|\d{4}-\d{7,8}|\d{3}-\d{7,8}|\(\d{4}\)\d{7,8}|\(\d{3}\)\d{7,8})$/;
            var result:Object = pattern.exec(str);
            if(result == null) {
                return false;
            }
            return true;
        }
		
		public static function validateMobilePhoneNumber(str:String):Boolean{
			var pattern:RegExp = /^(13[0-9]|15[0|3|6|7|8|9]|18[8|9])\d{8}$/;
			var result:Object = pattern.exec(str);
			if(result==null){
			return false;
			}
			return true;
		}
		
		public static function validateIP(ip:String):Boolean{
			var pattern:RegExp=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
			var result:Object=pattern.exec(ip);
			if(result==null){
				return false;
			}
			return true;
		}	
		
		public static function validateDomainName(domainName:String):Boolean{
			var pattern:RegExp =/^[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?$/;
			var result:Object = pattern.exec(domainName);
			if(result==null){
				return false;
			}
			return true;
		}
	}
分享到:
评论

相关推荐

    编译原理实验 分析表达式

    4. **表达式求值**:一旦AST构建完成,你可以遍历这棵树来求解表达式的值。对于简单的算术表达式,这通常通过递归下降解析(recursive descent parsing)来实现,每个非终结符对应一个函数,处理相应的语法结构。 5...

    利用FLEX设计一个small c的词法分析器(文档+工具+源码)

    总之,"利用FLEX设计一个small c的词法分析器"项目是一个极好的实践练习,它涵盖了编程语言处理的基础,包括正则表达式、词法分析原理、FLEX工具的使用,以及实际的编程和调试技能。通过这个项目,你可以深入理解...

    编译原理 词法分析器

    为了实现词法分析器,可以采用几种不同的方法,如使用表格驱动、预测分析或者使用现成的库,如Java的JFlex和C++的Flex。表格驱动方法通常通过生成的表格来实现DFA,预测分析则涉及分析输入字符串的下一个字符来决定...

    词法分析器实现(java和c++)

    1. **正则表达式**:理解如何用正则表达式表示源代码中的不同标记,例如标识符、关键字、数字、运算符等。 2. **有限自动机**:学习如何构建和使用有限状态自动机来识别和提取标记。 3. **词法分析算法**:熟悉...

    flex全中文手册(44页)

    当用户运行由flex生成的可执行文件时,它会分析输入数据,查找与正则表达式相匹配的部分,并执行相应的C代码。这使得flex成为构建词法分析器、编译器和文本处理工具的理想选择。 #### 二、flex输入与输出 - **输入...

    flex manual 中文手册 Loon.x翻译

    - **扩展正则表达式**: `flex`支持扩展的正则表达式,这使得模式匹配更加灵活和强大。 - **匹配规则**: 描述了`flex`如何匹配输入数据中的模式,以及匹配的具体过程。 #### 七、动作 - **动作定义**: 当模式匹配...

    词法分析器 基于c语言

    C语言虽然没有内置正则表达式库,但可以通过自定义函数或第三方库(如flex)来实现。正则表达式用于定义语言的词汇结构,比如标识符、数字、运算符等。 2. **状态机**:词法分析器通常使用有限状态自动机(Finite ...

    编译原理实验

    FLEX接收正则表达式作为输入,并生成相应的C代码,这个C代码能够扫描输入文本,按照定义的规则生成词法标记。在Windows环境下,你可以通过下载并安装FLEX的预编译版本,或者从源代码编译,然后在项目中链接生成的...

    flex&bison 英文PDF 及随书代码

    Flex支持正则表达式,使得定义语言的语法结构变得简单且灵活。 Bison(原名Yacc或Yet Another Compiler-Compiler)是一个解析器生成器,用于构建语法分析器。Bison根据用户提供的上下文无关文法(Context-Free ...

    cifafenxi.rar_编译原理实验2

    这一过程通常由正则表达式和状态机来实现。在实验2中,学生可能被要求设计一个词法分析器,以处理特定编程语言的语法特性,并生成对应的词法单元流。 为了实现词法分析器,首先需要对目标语言的语法规则有深入理解...

    delphi版lex与yacc源码包

    - Lex是一个定义词法规则的工具,它接受一系列正则表达式,生成一个C或C++程序,这个程序能够扫描输入文本并识别出符合规则的单词或符号。在Delphi版本中,可能名为`tply41a_lex`,它实现了同样的功能,将Pascal...

    词法分析器(有界面)

    flex接受正则表达式定义,生成C代码来实现词法分析功能,bison则根据上下文无关文法(CFG)生成解析器。 5. GUI编程:为了创建有界面的词法分析器,需要掌握一种或多种GUI库,如Qt、wxWidgets、Tkinter等。这涉及到...

    java词法分析程序

    使用JFlex,开发者需要编写一个特殊的规格文件(.flex),在这个文件中定义各种标记及其对应的正则表达式。 描述中提到“内注详细说明”,这意味着源代码中包含了丰富的注释,这对于理解和学习词法分析器的实现非常...

    计科17-6班-陆玺文-03170908-实验11

    1) 熟悉《Flex与Bison》这本书的第一、二章内容,对Flex的基础知识有深入的理解,如正则表达式、模式匹配等。 2) 在Windows和Linux环境下设置Flex和Bison的开发环境,以便进行代码编写和验证。 3) 使用Flex编写词法...

    编译原理实践词法分析器 实验报告

    2. 正则表达式与有限自动机:解释如何将正则表达式转换为有限自动机。 3. 词法规则的表示:展示如何形式化地定义词法规则。 4. 词法分析器设计:讨论不同设计方法,如手工编码和使用词法分析器生成器。 5. 示例分析...

    C语言词法编译分析代码

    2. **正则表达式**:可能用到了正则表达式库来匹配各种符号格式,比如识别数字或标识符的模式。 3. **缓冲区管理**:可能有对输入源代码的读取和管理,以便处理回溯和多字符符号。 4. **标记(Token)类**:定义了...

    c#版的编译原理的词法分析器

    - **基于正则表达式的方法**:如Flex和JFlex,它们可以直接将正则表达式映射到词法分析器代码。 5. **C#版词法分析器的特点** - **灵活性**:C#是一种强类型、面向对象的语言,适合构建复杂、可扩展的词法分析器...

    基于java的词法分析器实现.zip

    开发者可能使用Java的正则表达式库或者专门的词法分析工具(如ANTLR、Flex等)来实现。 "test.txt"可能是包含测试源代码的文件,用于验证词法分析器的正确性。开发者会用这个文件来运行词法分析器,检查其是否能...

    词法分析器

    在实际的软件开发中,词法分析器往往是大型编译器或解释器的一部分,而C#作为.NET框架的一部分,提供了诸如`System.Text.RegularExpressions`等库来简化正则表达式的操作,使得在C#中实现词法分析器变得相对容易。...

    CMM词法分析

    为了完成这个实验,学生需要具备基础的编译原理知识,包括正则表达式、状态机模型(如有限自动机)以及如何将这些理论应用到实际编程语言的处理上。使用一种编程语言(如C、C++或Java)实现词法分析器,并可能需要...

Global site tag (gtag.js) - Google Analytics