AS3字符串正则表达式

一、String.match(pattern:*);//将指定的pattern与字符串匹配,pattern可以是正则表达式或者字符串,如果是字符串就直接匹配。

下面是它文档中的说明:

参数

pattern:*— 要匹配的模式,可以为任何类型的对象,但通常是字符串或正则表达式。 如果pattern不是正则表达式或字符串,则该方法在执行前会将其转换为字符串。

返回

Array— 一个字符串数组,其中包括与指定的pattern匹配的字符串中的所有子字符串。

如果pattern是正则表达式,为了返回一个具有多个匹配子字符串的数组,必须在该正则表达式中设置g(全局)标志:

  • 如果设置g(全局)标志,则返回的数组包含的匹配项将不多于一项,且正则表达式的lastIndex属性保持不变。
  • 如果设置g(全局)标志,则该方法从字符串的起始处(索引位置 0)开始搜索。 如果匹配的子字符串为空字符串(正则表达式为/x*/时可能出现此情况),则该方法将此空字符串添加到匹配项数组,然后在下一个索引位置继续搜索。 该方法完成后,将正则表达式的lastIndex属性设置为 0。

如果未找到匹配项,该方法返回null。 如果未传递值(或传递了未定义的值)作为pattern参数,则该方法返回null

例子:

//下面讨论的是flash正则表达式规则和功能
/*
由于'['和']'符号都是元符号,所以这里要用到转义符号
来将它们转义为具体的符号
在flash中用'\'符号来表示,因为'/'符号以被系统使用了
*/
//如果输入的字符没有元符号或者元序列等特殊符号,
//那么就是单词匹配。
var str:String="你是[雷龙]本人吧,[小龙]。";

//vartrace(/\[雷.\]/);//打印雷龙
var str2:Array=str.match(/雷龙/g);
trace(str2.length);
trace(str2);

//1
//雷龙

//例子2,用'i'这个参数,'i'这个参数表示不区分大小写
/*
根据下面的'i'这个参数的使用总结出这个规律:
使用'i'这个参数后,正则表达式的参数也不区分大小写
*/
var num:String="First,you are HUMN,But you not SAME."
var str3:Array=num.match(/.h.m./i);
if(str3.length!=0){
trace("i="+str3);
}

//i= HUMN

String.replace();

下面是他们文档中的说明:

相对于字符串匹配指定的pattern并返回一个新字符串,其中的第一个pattern匹配项被替换为repl所指定的内容。pattern参数可以是字符串或正则表达式。repl参数可以是字符串或函数;如果是函数,将插入由该函数返回的字符串以替换匹配项。 未修改原始字符串。

在下面的示例中,仅替换“sh”(区分大小写)的第一个实例:

 var myPattern:RegExp = /sh/;     var str:String = "She sells seashells by the seashore.";   trace(str.replace(myPattern,"sch"));        // She sells seaschells by the seashore.

在下面的示例中,替换“sh”(区分大小写)的所有实例,这是因为在正则表达式中设置了g(全局)标志:

 var myPattern:RegExp = /sh/g;     var str:String = "She sells seashells by the seashore.";   trace(str.replace(myPattern,"sch"));        // She sells seaschells by the seaschore.

在下面的示例中,替换“sh”的所有实例,这是因为在正则表达式中设置了g(全局)标志,并且匹配时区分大小写,因为设置了i(忽略大小写)标志:

 var myPattern:RegExp = /sh/gi;     var str:String = "She sells seashells by the seashore.";   trace(str.replace(myPattern,"sch"));        // sche sells seaschells by the seaschore.

参数

pattern:*— 要匹配的模式,可以为任何类型的对象,但通常是字符串或正则表达式。 如果指定的pattern参数是除字符串或正则表达式以外的任何其它对象,将对该参数应用toString()方法,并使用结果字符串作为pattern来执行replace()方法。
repl:Object— 通常是以插入的字符串替换匹配内容。 但也可以指定一个函数作为此参数。 如果指定一个函数,将插入由该函数返回的字符串来替换匹配内容。

如果指定一个字符串作为repl参数,并指定一个正则表达式作为pattern参数,则可以在repl字符串中使用以下特殊的$ 替换代码

$ 代码 替换文本
$$ $
$& 匹配的子字符串。
$` 字符串中位于匹配的子字符串前面的部分。 请注意,此代码使用左侧直单引号字符 (`),而不是直单引号字符 (') 或左侧弯单引号字符 (‘)。
$' 字符串中位于匹配的子字符串后面的部分。 请注意,此代码使用直单引号字符 (')。
$n n个捕获的括号组匹配项,其中n是 1-9 之间的数字,而且$n后面没有十进制数字。
$nn nn个捕获的括号组匹配项,其中nn是一个十进制的两位数 (01-99)。 如果未定义第nn个捕获内容,则替换文本为空字符串。

例如,下面说明了如何使用$2$1替换代码,它们分别表示匹配的第一个和第二个捕获组:

var str:String = "flip-flop";   var pattern:RegExp = /(\w+)-(\w+)/g;   trace(str.replace(pattern,"$2-$1")); // flop-flip

指定一个函数作为repl时,replace()方法将以下参数传递给该函数:

  • 字符串的匹配部分。
  • 任何捕获到的括号组匹配项都将作为下一组参数提供。 按这种方式传递的参数数目因括号匹配项的数目而异。 您可以通过检查函数代码中的arguments.length - 3来确定括号匹配项的数目。
  • 字符串中匹配开始的索引位置。
  • 完整的字符串。

例如,请看以下例子:

 var str1:String = "abc12 def34";   var pattern:RegExp = /([a-z]+)([0-9]+)/;   var str2:String = str1.replace(pattern,replFN);   trace(str2);   // 12abc 34def      function replFN():String {    return arguments[2] + arguments[1];   }

replace()方法的调用使用一个函数作为repl参数。 匹配两次正则表达式 (/([a-z]([0-9]/g)。 第一次,模式与子字符串"abc12"匹配,并将以下参数列表传递给该函数:

 {"abc12","abc","12","abc12 def34"}

第二次,模式与子字符串"def23"匹配,并将以下参数列表传递给该函数:

 {"def34","def","34",6,"abc123 def34"}

返回

String— 结果字符串。 请注意,源字符串保持不变。

例子:

/*
String.replace(RegExp,Object);
这个函数指定正则表达式的替换功能
如果RegExp是一个字符串(不包括元符号等特殊符号),Object可以是任何对象,
也可以是由函数返回的对象形式,通常这个数据返回的是字符串,
如果RegExp是一个字符串,那么就是纯替换,首先程序会查找String的RegExp参数

中的数据,之后就用Object来替换。也就是说把RegEx的内容用Object来替换
看看下面的例子
*/
//实例1
var s:String="She sells seashells by the seashore.";
trace("运行前:"+s.replace(/sh/g,"sch"));
//实例2
var s2:String="She sells seashells by the seashore.She is my wife";
trace("运行前:"+s2.replace(/S.e/g,"He"));//使用正则表达式

//运行前:She sells seaschells by the seaschore.
//前:He sells seashells by the seashore.He is my wife

String.seach(pattern:*);

search () 方法

AS3function search(pattern:*):int

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

搜索指定的pattern并返回第一个匹配子字符串的索引。 如果没有匹配的子字符串,该方法返回-1

参数

pattern:*— 要匹配的模式,可以为任何类型的对象,但通常是字符串或正则表达式。 如果pattern不是正则表达式或字符串,则该方法在执行前会将其转换为字符串。 请注意,如果指定正则表达式,该方法将忽略此正则表达式的全局标志(“g”),并忽略此正则表达式的lastIndex属性(并保持其值不变)。 如果传递未定义的值(或未传递值),则该方法返回-1

返回
int— 第一个匹配子字符串的索引,如果没有匹配项,则为-1。 请注意,字符串的索引从零开始;字符串的第一个字符位于索引 0 处,最后一个字符位于string.length - 1处。

例子:

/*
String.search(正则表达式:字符串);//返回第一个匹配子字符串的索引
String.split(正则表达式:字符串);//将String字符串进行拆分,由里面的参数位置来拆分,
但不包括里面的参数。

*/
var ss:String="here is my home,she is my wife.";
trace("运行后="+ss.search(/my/g));//返回第一个与'my'匹配的ss索引
//运行后=8

String.split(delimiter:*,limit:Number= 0x7fffffff):Array;

将 String 对象拆分为一个子字符串数组,方法是在所有出现指定delimiter参数的位置进行拆分。

如果delimiter参数是正则表达式,即使向后跟踪可以找到与该位置匹配的非空子字符串,也仅考虑字符串给定位置处的第一个匹配项。 例如:

  var str:String = "ab";    var results:Array = str.split(/a*?/); // results == ["","b"]        results = str.split(/a*/); // results == ["","b"].)

如果delimiter参数是包含分组圆括号的正则表达式,则每次匹配delimiter时,会将分组圆括号的结果(包括任何未定义的结果)连接到输出数组中。 例如

  var str:String = "Thi5 is a tricky-66 example.";    var re:RegExp = /(\d+)/;    var results:Array = str.split(re);        // results == ["Thi","5"," is a tricky-","66"," example."]

如果指定limit参数,返回的数组中具有的元素数将不多于指定数目。

如果delimiter是空字符串、空正则表达式或者可以匹配空字符串的正则表达式,则字符串中的每一个字符都将输出为数组中的一个元素。

如果未定义delimiter参数,则会将整个字符串放入返回的数组的第一个元素中。

参数

delimiter:*— 指定拆分此字符串的位置的模式。 此模式可以是任何类型的对象,但通常为字符串或正则表达式。 如果delimiter不是正则表达式或字符串,则该方法在执行前会将其转换为字符串。
limit:Number(default =0x7fffffff)— 要放入数组中的最大项数。 默认为允许的最大值。

返回

Array— 一个子字符串的数组

例子:


String.search(正则表达式:字符串);//返回第一个匹配子字符串的索引
String.split(正则表达式:字符串);//将String字符串进行拆分,由里面的参数位置来拆分,
但不包括里面的参数。

*/
var ss:String="here is my home,she is my wife.";
trace("运行后="+ss.search(/my/g));//返回第一个与'my'匹配的ss索引
trace(ss.split(/is/g,2));

//运行后=8 //here,my home,she //split,拆分,例如有一句话:你是那个谁是不是。假如从'谁'这个字来拆分,得:你是那个,是不是。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


jquery.validate使用攻略(表单校验) 目录 jquery.validate使用攻略1 第一章 jquery.validate使用攻略1 第二章 jQuery.validate.js API7 Custom selectors7 Utilities8 Validato
/\s+/g和/\s/g的区别 正则表达式/\s+/g和/\s/g,目的均是找出目标字符串中的所有空白字符,但两者到底有什么区别呢? 我们先来看下面一个例子: let name = 'ye wen jun';let ans = name.replace(/\s/g, '&#3
自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母 /^[0-9a-zA-Z]*$/g jQuery.validator.addMethod("letters", function (value, element) { return this.optio
this.optional(element)的用法 this.optional(element)是jquery.validator.js表单验证框架中的一个函数,用于表单控件的值不为空时才触发验证。 简单来说,就是当表单控件值为空的时候不会进行表单校验,此函数会返回true,表示校验通过,当表单控件
jQuery.validate 表单动态验证 实际上jQuery.validate提供了动态校验的方法。而动态拼JSON串的方式是不支持动态校验的。牺牲jQuery.validate的性能优化可以实现(jQuery.validate的性能优化见图1.2 jQuery.validate源码 )。 也可
自定义验证之这能输入数字(包括小数 负数 ) <script type="text/javascript"> function onlyNumber(obj){ //得到第一个字符是否为负号 var t = obj.value.charAt(0); //先把非数字的都
// 引入了外部的验证规则 import { validateAccountNumber } from "@/utils/validate"; validator.js /*是否合法IP地址*/ export function validateIP(rule, value,cal
VUE开发--表单验证(六十三) 一、常用验证方式 vue 中表单字段验证的写法和方式有多种,常用的验证方式有3种: data 中验证 表单内容: <!-- 表单 --> <el-form ref="rulesForm" :rules="formRul
正则表达式 座机的: 例子: 座机有效写法: 0316-8418331 (010)-67433539 (010)67433539 010-67433539 (0316)-8418331 (0316)8418331 正则表达式写法 0\d{2,3}-\d{7,8}|\(?0\d{2,3}[)-]?\d
var reg = /^0\.[1-9]{0,2}$/;var linka = 0.1;console.log (reg.test (linka)); 0到1两位小数正则 ^(0\.(0[1-9]|[1-9]{1,2}|[1-9]0)$)|^1$ 不含0、0.0、0.00 // 验证是否是[1-10
input最大长度限制问题 <input type="text" maxlength="5" /> //可以 <input type="number" maxlength="5" /> //没有效
js输入验证是否为空、是否为null、是否都是空格 目录 1.截头去尾 trim 2.截头去尾 会去掉开始和结束的空格,类似于trim 3.会去掉所有的空格,包括开始,结束,中间 1.截头去尾 trim str=str.trim(); // 强烈推荐 最常用、最实用 or $.trim(str);
正则表达式语法大全 字符串.match(正则):返回符合的字符串,若不满足返回null 字符串.search(正则):返回搜索到的位置,若非一个字符,则返回第一个字母的下标,若不匹配则返回-1 字符串.replace(正则,新的字符串):找到符合正则的内容并替换 正则.test(字符串):在字符串中
正整数正则表达式正数的正则表达式(包括0,小数保留两位): ^((0{1}.\d{1,2})|([1-9]\d.{1}\d{1,2})|([1-9]+\d)|0)$正数的正则表达式(不包括0,小数保留两位): ^((0{1}.\d{1,2})|([1-9]\d.{1}\d{1,2})|([1-9]+
JS 正则验证 test() /*用途:检查输入手机号码是否正确输入:s:字符串返回:如果通过验证返回true,否则返回false /function checkMobile(s){var regu =/[1][3][0-9]{9}$/;var re = new RegExp(regu);if (r
请输入保留两位小数的销售价的正则: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/ 1.只能输入英文 <input type="text" onkeyup="value
判断价格的正则表达式 价格的正则表达式 /(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/; 1 解析:价格符合两种格式 ^ [1-9]\d*(.\d{1,2})?$ : 1-9 开头,后跟是 0-9,可以跟小数点,但小数点后要带上 1-2 位小数,类似 2,2
文章浏览阅读106次。这篇文章主要介绍了最实用的正则表达式整理,比如校验邮箱的正则,号码相关,数字相关等等,本文给大家列举的比较多,需要的朋友可以参考下。_/^(?:[1-9]d*)$/ 手机号
文章浏览阅读1.2k次。4、匹配中的==、an==、== an9、i9 == "9i"和99p==请注意下面这部分的作用,它在匹配中间内容的时候排除了说明:当html字符串如下时,可以匹配到两处,表示匹配的字符串不包含and且不包含空白字符。说明:在上面的正则表达式中,_gvim正则表达式匹配不包含某个字符串
文章浏览阅读897次。【代码】正则表达式匹配a标签的href。_auto.js 正则匹配herf