ActionScript中的正则表达式

简介

正则表达式描述字符模式,通常用于验证文本值是否符合特定模式(例如验证电话号码位数是否正确),或者替换与特定模式匹配的部分文本值。

用途

  • 创建正则表达式模式
  • 在模式中使用特殊字符
  • 标识多个字符的序列(如“介于7到10个字母之间”)
  • 标识字母或数字范围中的任何字母(如“a到m的任何字母”)
  • 标识可能的字符集中的字符
  • 标识子序列(模式内的片段)
  • 基于模式匹配和替换文件

概念和术语

  • 元字符(Metacharacter):在正则表达式模式中具有特殊含义的字符,它与从字面意义上在模式中表达该字符相对。
  • 转义字符(Escape character):此字符指示应将后面的字符视为元字符,而不是字面字符。
  • 标志(Flag):此字符指定有关应如何使用正则表达式模式的一些选项,如是否区分大小写。
  • 数量表示符(Quantifier):一个或几个字符,指示应将模式部分重复多少次。例如,使用数量标识符来指定美国邮编应包含5个或9个数字。
  • 正则表达式(Regular expression):用于定义字符模式的程序语句,它可用来确认其他字符串是否与该模式匹配,或者替换字符串的一部分。

创建正则表达式实例

  • 有两种方法可以创建正则表达式实例。一种是使用正斜杠字符(/)来界定正则表达式,另一种是使用new构造函数。
var pattern1:RegExp = /bob/i;
var pattern2:regExp = new RegExp("bob","i");
  • 以上两个正则表达式是等效的。
  • 正斜杠内的正则表达式部分定义“模式”。正则表达式还可以在后一个界定斜杠后包含“标志”。这些标志也看作是正则表达式的一部分,但是他们独立于模式。
  • 使用new构造函数时,使用两个字符串来定义正则表达式。第一个字符串定义模式,第二个字符串定义标志。
  • 如果正则表达式里包含正斜杠或引号,则必须在正斜杠前加上转义字符:
//  1/2
var pattern3:RegExp = /1\/2/;
// eat at "joe's"
var pattern4:RegExp = new RegExp("eat at \"joe's\"","");
var pattern5:RegExp = new RegExp("eat at "joe\'s"',"");
  • 请勿在正斜杠界定符定义的正则表达式中对引号使用反斜杠转义字符。同样地,不要在使用new构造函数定义的正则表达式中对正斜杠使用转义字符。下面的正则表达式是等效的,他们定义了模式1/2 “joe’s”:
var pattern1:RegExp = /1\/2 "joe's"/;
var pattern2:RegExp = new RegExp("1/2 \"joe's\"","");
var pattern3:RegExp = new RegExp('1/2 "joe\'s"','');
  • 在使用new构造函数定义的正则表达式中,要使用以反斜杠字符开头的元序列时,需要输入两个反斜杠字符。

字符、元字符和元序列

  • 下列字符(称为元字符)在正则表达式中具有特殊含义:
    ^ $ \ . * + ? ( ) [ ] { } |
  • 元序列和元字符类似,在正则表达式中具有特殊含义。元序列由多个字符组成。
元字符
元字符描述
^(尖号)匹配字符串的开头。设置m(multiline)标志后,尖头还匹配行的开头。尖头用在字符类的开头时表示符号翻转而非字符串的开头。
$(美元符号)匹配字符串的结尾。设置m(multiline)标志后,$还匹配换行(\n)字符前面的位置。
\(反斜杠)对特殊字符的特殊元字符含义进行转义
.(点)匹配任意单个字符。只有设置s(dotall)标志时,点才匹配换行符(\n)
*(星号)匹配前面重复零次或多次的项目
+(加号)匹配前面重复一次或多次的项目
?(问号)匹配前面重复零次或一次的项目
(和)在正则表达式中定义组。以下情况使用组:1.限制逻辑“或”字符|的范围:/(a|b|c)d/;2.定义数量标识符的范围:/(walla.){1,2}/;3.用在逆向引用中。例如,下面的正则表达式中的\1匹配模式的第一个括号组中的匹配内容:/(\w*) is repeated:\1/
[和]定义字符类,字符类定义单个字符可能的匹配:/[aeiou]/ 匹配所指定字符中的任意一个;在字符类中,使用连字符(-)指定字符的范围:/[A-Z0-9]/ 匹配从A到Z的大写字母或0到9的数字;在字符类中,插入反斜杠对]和-字符进行转义:/[+\-]\d+/ 匹配一个或多个数字前面的+或-;在字符类中,以下字符(通常为元字符)被看作一般字符(非元字符),不需要反斜杠:/{$£]/ 匹配$或£
|(竖线)用于逻辑“或”操作,匹配左侧或右侧的部分:/abc|xyz 匹配abc或xyz。
关于元序列

元序列时在正则表达式模式中具有特殊含义的字符序列。

元序列描述
{n}{n,}和{n,n}指定前一项目的数值数量或数值范围:/A{27}/ 匹配重复27次的字符A;/A{3,}/ 匹配重复3次货更多次的字符A;/A{3,5}/ 匹配重复3到5次的字符A。
\b匹配单词字符和非单词字符之间的位置。如果字符串中的第一个或最后一个字符是单词字符,则也匹配字符串的开头或结尾。
\B匹配两个单词字符之间的位置。也匹配两个非单词字符之间的位置。
\d匹配十进制数字
\D匹配除数字意外的任何字符
\f匹配换页符
\n匹配换行符
\r匹配回车符
\s匹配任何空白字符(空格、制表符、换行符或回车符)
\S匹配除空白字符以外的任何字符
\t匹配制表符
\unnnn匹配字符代码由十六进制数字nnnn指定的Unicode字符
\v匹配垂直换页符
\w匹配单词字符(A-Z、a-z、0-9或_)。请注意,\w不匹配非英文字符,如é、ñ或ç
\W匹配除单词字符以外的任何字符
\xnn匹配具有指定ASCII值(由十六进制数字nn定义)的字符
字符类中字符的范围
  • 使用连字符指定字符的范围,例如A-Z、a-z或0-9.
  • 还可以使用\xnn ASCII字符代码通过ASCII值指定范围。
    例如: /[/x90-/x9A]/
反转的字符类
  • 如果在字符类的开头使用尖号(^)字符,则将反转该集合的意义,即未列出的任何字符都认为匹配。
  • 必须在字符类的“开头”键入尖号字符来表示反转,否则,只是将尖号字符添加到字符类的字符中。
数量表示符

使用数量表示符指定字符或序列在模式中的重复次数。

数量表示符元字符描述
*(星号)匹配前面重复零次或多次的项目
+(加号)匹配前面重复一次货多次的项目
?(问号)匹配前面重复零次或一次的项目
{n}{n,}和{n,n}指定前一项目的数值或数量范围:/A{27}/ 匹配重复27次的字符A;/A{3,}/ 匹配重复3次或更多次的字符A;/A{3,5}/ 匹配重复3到5次的字符A。

可以将数量标识符应用到单个字符、字符类或组:

  • /a+/ 匹配重复一次或多次的字符a;
  • /\d+/ 匹配一个或多个数字;
  • /[abc]+/ 匹配重复的一个或多个字符,这些字符可能是a,b或c中的某个;
  • /(very, )/ 匹配重复零次或多次的后跟逗号和空格的单词very;
    默认情况下,正则表达式执行所谓的“无限匹配”。正则表达式中的任何子模式(如 .
    )都会尝试在字符串中匹配尽可能多的字符。然后再执行正则表达式的下一部分。

标志和属性

下列的五种标志都可以作为正则表达式对象属性进行访问:
|标志|属性|描述|
|----------
|g|global|匹配多个匹配|
|i|ignoreCase|不区分大小写的匹配,只应用于A-Z和a-z字符|
|m|multiline|设置此标志后,$和^可以分别匹配换行符(\n)|
|s|dotall|设置此标志后, .(点)可以匹配换行符(\n)|
|x|extended|允许扩展的正则表达式。您可以在正则表达式中键入空格,它将作为模式的一部分被忽略。这可以更加清晰可读地键入正则表达式代码|

actionScript 3.0开发人员指南中文版,总共67章,955页。学习actionScript不错的书籍。 目录: 目录 第章:使用日期和时间 管理日历日期和时间 控制时间间隔 日期和时间示例:简单模拟时钟 第章:使用字符串 字符串基础知识 创建字符串 length属性 处理字符串中的字符 比较字符串 获取其他对象的字符串表示形式 连接字符串 在字符串中查找子字符串和模式 转换字符串的大小写 字符串示例:ASCII图表 第章:使用数组 数组基础知识 索引数组 关联数组 多维数组 克隆数组 扩展Array类 数组示例:播放列表 第章:处理错误 错误处理基础知识 错误类型 ActionScript中的错误处理 使用Flash运行时的调试版 在应用程序中处理同步错误 创建自定义错误类 响应错误事件和状态 比较错误类 处理错误示例:CustomErrors应用程序 第章:使用正则表达式 正则表达式基础知识 正则表达式语法 对字符串使用正则表达式的方法 正则表达式示例:Wiki解析程序 第章:使用XML XML基础知识 用于处理XML的EX方法 XML对象 XMLList对象 初始化XML变量 组合和变换XML对象 遍历XML结构 使用XML命名空间 XML类型转换 读取外部XML文档 在ActionScript中使用XML的示例:从Internet加载RSS数据 第章:使用本机JSON功能 JSONAPI概述 定义自定义JSON行为 第章:处理事件 事件处理基础知识 ActionScript事件处理与早期版本事件处理的不同之处 事件流 事件对象 事件侦听器 事件处理示例:闹钟 第章:使用应用程序域 第章:显示编程 显示编程的基础知识 核心显示类 显示列表方法的优点 使用显示对象 处理显示对象 对象动画 舞台方向 动态加载显示内容 显示对象示例:SpriteArranger 第章:使用几何结构 几何结构基础知识 使用Point对象 使用Rectangle对象 使用Matrix对象 几何形状示例:对显示对象应用矩阵转换 第章:使用绘图API 绘制API的基础 Graphics类 绘制线条和曲线 使用内置方法绘制形状 创建渐变线条和填充 将Math类与绘制方法配合使用 使用绘图API进行动画处理 绘制API示例:算法可视化生成器 绘图API高级用法 第章:使用位图 位图使用基本知识 Bitmap和BitmapData类 处理像素 复制位图数据 使用杂点功能制作纹理 滚动位图 利用mipmap处理 位图示例:带动画效果的旋转的月亮 位图图像的异步解码 第章:过滤显示对象 过滤显示对象的基础知识 创建和应用滤镜 可用的显示滤镜 筛选显示对象示例:FilterWorkbench 第章:使用PixelBender着色器 PixelBender着色器基础知识 加载或嵌入着色器 访问着色器元数据 指定着色器输入和参数值 使用着色器 第章:使用影片剪辑 影片剪辑基础知识 使用MovieClip对象 控制影片剪辑播放 使用ActionScript创建MovieClip对象 加载外部SWF文件 影片剪辑示例:RuntimeAssetsExplorer 第章:使用补间动画 补间动画基础知识 在Flash中复制补间动画脚本 合并补间动画脚本 描述动画 添加滤镜 将补间动画与其显示对象关联 第章:使用反向运动 反向运动的基础知识 IK骨架动画处理概述 获取有关IK骨架的信息 实例化IKMover并限制其移动 移动IK骨架 使用弹簧 使用IK事件 第章:在三维(D)环境中工作 D显示对象的基础知识 了解FlashPlayer和AIR运行中的D显示对象 创建和移动D显示对象 将D对象投影到D视图上 示例:透视投影 执行复杂的D转换 通过三角形获得D效果 第章:文本使用基础知识 第章:使用TextField类 显示文本 选择和操作文本 捕获文本输入 限制文本输入 设置文本格式 高级文本呈现 使用静态文本 TextField示例:报纸风格的文本格式设置 第章:使用Flash文本引擎 创建和显示文本 处理FTE中的事件 设置文本格式 使用字体 控制文本 Flash文本引擎示例:新闻版面布局 第章:使用TextLayoutFramework TextLayoutFramework概述 使用TextLayoutFramework 使用TLF构建文本结构 使用TLF设置文本格式 使用TLF导入和导出文本 使用TLF管理文本容器 使用TLF启用文本选择、编辑和撤消 使用TLF处理事件 在文本内定位图像 第章:处理声音 声音处理基础知识 了解声音体系结构 加载外部声音文件 处理嵌入的声音 处理声音流文件 处理动态生成的音频 播放声音 加载和播放声音时的安全注意事项 控制音量和声相 处理声音元数据 访问原始声音数据 捕获声音输入 声音示例:PodcastPlayer 第章:使用视频 视频基础知识 了解视频格式 了解Video类 加载视频文件 控制视频播放 在全屏模式下播放视频 流式传输视频文件 了解提示点 编写元数据和提示点的回调方法 使用提示点和元数据 监控NetStream活动 视频文件的高级主题 视频示例:视频自动唱片点唱机 使用StageVideo类来实现硬件加速呈现 第章:使用摄像头 了解Camera类 在屏幕上显示摄像头内容 设计摄像头应用程序 连接至用户的摄像头 验证是否已安装摄像头 检测摄像头的访问权限 最优化摄像头视频品质 监控摄像头状态 第章:使用数字权限管理 了解受保护的内容工作流程 NetStream类中与DRM相关的成员和事件 使用DRMStatusEvent类 使用DRMAuthenticateEvent类 使用DRMErrorEvent类 使用DRMManager类 使用DRMContentData类 更新FlashPlayer以支持FlashAccess 带外许可证 域支持 使用域支持播放加密的内容 许可证预览 提交内容 OpenSourceMediaFramework 第章:在AIR中添加PDF内容 检测PDF功能 加载PDF内容 编写PDF内容的脚本 对AIR中的PDF内容的已知限制 第章:用户交互的基础知识 捕获用户输入 管理焦点 了解输入类型 第章:键盘输入 捕获键盘输入 使用IME类 虚拟键盘 第章:鼠标输入 捕获鼠标输入 鼠标输入示例:WordSearch 第章:触摸、多点触控和手势输入 触摸输入的基础知识 触摸支持发现 Touch事件处理 触摸和拖动 Gesture事件处理 疑难解答 第章:复制和粘贴 复制粘贴基础知识 读取和写入系统剪贴板 AIR中的HTML复制和粘贴 剪贴板数据格式 第章:加速器输入 检查加速计支持 检测加速计更改 第章:AIR中的拖放 AIR中拖放的基础知识 支持拖出手势 支持拖入手势 HTML中的拖放 将数据拖出HTML元素 将数据拖入HTML元素 示例:覆盖默认的HTML拖入行为 在非应用程序HTML沙箱中处理文件放置 放置文件释放 第章:使用菜单 菜单基础知识 创建本机菜单(AIR) 关于HTML中的上下文菜单(AIR) 显示弹出本机菜单(AIR) 处理菜单事件 本机菜单示例:窗口和应用程序菜单(AIR) 第章:AIR中的任务栏图标 关于任务栏图标 停靠栏图标 系统任务栏图标 Window任务栏图标和按钮 第章:使用文件系统 使用FileReference类 使用AIR文件系统API 第章:存储本地数据 共享对象 加密的本地存储区 第章:在AIR中使用本地SQL数据库 关于本地SQL数据库 创建和修改数据库 操作SQL数据库数据 使用同步和异步数据库操作 对SQL数据库使用加密 使用SQL数据库的策略 第章:使用字节数组 读取并写入ByteArray ByteArray示例:读取zip文件 第章:网络和通信基础知识 网络接口 网络连接更改 域名系统(DNS)记录 第章:套接字 TCP套接字 UDP套接字(AIR) IPv地址 第章:HTTP通信 加载外部数据 Web服务请求 在其他应用程序中打开URL 第章:与其他FlashPlayer和AIR实例通信 关于LocalConnection类 在两个应用程序之间发送消息 连接到不同域中的内容和AIR应用程序 第章:与AIR中的本机进程通信 本机进程通信概述 启动和关闭本机进程 与本机进程通信 本机进程通信的安全性注意事项 第章:使用外部API 使用外部API的基础知识 外部API要求和优点 使用ExternalInterface类 外部API示例:在ActionScript和Web浏览器中的JavaScript之间进行通信 第章:AIR中的XML签名验证 XML签名验证的基础知识 关于XML签名 实现IURIDereferencer接口 第章:客户端系统环境 客户端系统环境基础知识 使用System类 使用Capabilities类 功能示例:检测系统功能 第章:AIR应用程序的调用和终止 应用程序调用 捕获命令行参数 用户登录时调用AIR应用程序 从浏览器调用AIR应用程序 应用程序终止 第章:处理AIR运行时和操作系统信息 管理文件关联 获取运行时版本和修补级别 检测AIR功能 跟踪用户当前状态 第章:使用AIR本机窗口 AIR中的本机窗口的基础知识 创建窗口 管理窗口 侦听窗口事件 显示全屏窗口 第章:AIR中的显示屏幕 AIR中的显示屏幕的基础知识 枚举屏幕 第章:打印 打印基础知识 打印页面 Flash运行时任务和系统打印 设置大小、缩放和方向 高级打印技术 打印示例:多页面打印 打印示例:缩放、裁剪和响应 打印示例:页面设置和打印选项 第章:Geolocation 检测geolocation更改 第章:应用程序国际化 应用程序国际化基础知识 flashglobalization包概述 确定区域设置 设置数字格式 设置货币值格式 设置日期和时间格式 排序和比较字符串 大小写转换 示例:国际化股票报价应用程序 第章:本地化应用程序 选择区域设置 本地化Flex内容 本地化Flash内容 本地化AIR应用程序 对日期、时间和货币进行本地化 第章:关于HTML环境 HTML环境概述 AIR和WebKit 第章:在AIR中进行HTML和JavaScript编程 关于HTMLLoader类 避免与安全相关的JavaScript错误 通过JavaScript访问AIRAPI类 关于AIR中的URL 使ActionScript对象可用于JavaScript 从ActionScript访问HTMLDOM和JavaScript对象 在HTML中嵌入SWF内容 在HTML页中使用ActionScript库 转换Date和RegExp对象 从ActionScript操作HTML样式表 跨脚本访问不同安全沙箱中的内容 第章:为AIRHTML容器编写脚本 HTMLLoader对象的显示属性 滚动HTML内容 访问HTML历史记录列表 设置在加载HTML内容时使用的用户代理 设置用于HTML内容的字符编码 为HTML内容定义类似于浏览器的用户界面 创建HTMLLoader类的子类 第章:处理AIR中与HTML相关的事件 HTMLLoader事件 使用ActionScript处理DOM事件 响应未捕获的JavaScript异常 使用JavaScript处理运行时事件 第章:在移动应用程序中显示HTML内容 StageWebView对象 内容 导航事件 历史记录 焦点 位图捕获 第章:安全性 FlashPlatform安全概述 安全沙箱 权限控制 限制网络API 全屏模式安全性 加载内容 跨脚本访问 作为数据访问加载的媒体 加载数据 从导入到安全域的SWF文件加载嵌入内容 使用旧内容 设置LocalConnection权限 控制外出URL访问 共享对象 摄像头、麦克风、剪贴板、鼠标和键盘访问 AIR安全性 第章:如何使用ActionScript示例 示例类型 在FlashProfessional中运行ActionScript示例 在FlashBuilder中运行ActionScript示例 在移动设备上运行ActionScript示例 第章:本地数据库中的SQL支持 支持的SQL语法 数据类型支持 第章:SQL错误详细消息、ID和参数 第章:Adobe图形汇编语言(AGAL) AGAL字节码格式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值