22.Array 中splice 与slice
slice是截取元素组成新的数组,而不改变原有数组类型。新数组包括起点索引而不包括终点索引
var a:Array = ["零",1, "two", "three", 4,"五"];
trace(a.splice(1,2,"one",2)); //将1,”two”,置换成one,2
trace(a.splice(-1,0,"four 5"))
trace(a); //零,one,two,three,4,four 5,五.。结构已改变
trace(a.slice(2,4)); //two,three 。组成新数组
23.Array 中concat与push 区别
var a:Array = ["零",1, "two", "three", 4,"五"];
var b1:int = 6;
var b2:Array = [7,8,9];
var a1:Array = a.concat(b1,b2);
trace (a1); //零,1,two,three,4,五,6,7,8,9 。生成新数组
trace (a1.length); // 10
trace (a); //原数组不变
trace("--------------");
a.push(b1,b2);
trace(a); //零,1,two,three,4,五,6,7,8,9原数组已经改变
trace(a.length); //8 。将b1,b2当成一个元素
24. Array 中,回调函数、forEach\every\filter\map\some
回调函数(callback):对数组中的每一项运行的函数
Exp1
//map用法:新生成一个数组,将原数组中的元素修改后添加到新数组
var arr:Array = new Array("one", "two", "Three");
trace(arr); // one,two,Three
var upperArr:Array = arr.map(toUpper);
trace(upperArr); // ONE,TWO,THREE
function toUpper(element:*, index:int, arr:Array):String {
return String(element).toUpperCase(); //toUpperCase():小写改大写
}
Exp2
var s1:Object ={name:"古天乐",age:35};
var s2:Object ={name:"古天乐",age:25};
var s3:Object ={name:"傲天",age:23};
var starlist:Array =[s1,s2,s3];
//every用法:
//用此方法可确定数组中的所有项是否满足某一条件.
//如果全是age>34岁的,则返回true
trace(starlist.every(oldmanList));
//判断是否都是34岁以上
function oldmanList(element:*, index:int, arr:Array):Boolean {
if(element.age>34){
trace("第"+(index+1)+"仁兄,就太老了");
return false;
}else{
return true;
}
}
//第1仁兄,就太老了
//false
//some用法:确定数组中的所有项是否满足条件.
//判断明星列表中是否有叫古天乐的
trace(starlist.some(isCool));
function isCool(element:*, index:int, arr:Array):Boolean {
if ( element.name == "古天乐")
{
trace("天乐在哦,我爱你");
return true;
}else{
trace("干,不在啊");
return false;
}
}
//天乐在哦,我爱你
//true
//filter用法:对数组中的每一项执行测试函数,并构造一个新数组,其中的所有项都对指定的函数返回 true
//将明星列表starlist中有叫古天乐的元素提取出重新组成一个新数组newStarList
var newStarList = starlist.filter(isCool);
trace(newStarList[1].age); //25
//forEach用法:对数组中的每一项执行函数。
newStarList.forEach(changeName);
function changeName(element:*, index:int, arr:Array):void {
element.name = "小龙女"; //将元素中的name属性值改为”小龙女“;
}
for each(var i in newStarList){
trace(i.name+"芳龄"+i.age);
}
//小龙女芳龄35
//小龙女芳龄25
25.charAt | () | 与charCodeAt | () | 方法 |
|
|
AS中并没有char类型,charCodeAt()返回指定index
处的字符的数值 Unicode 字符代码
var str:String = "I love you,安妮";
for (var i:int = 0; i <str.length; i++)
{
trace(str.charAt(i)+" unicode:"+str.charCodeAt(i)+"\t");
}
trace(str.charAt(12));
var str1:String = String.fromCharCode(0x73);
trace(str1);
/*输出
I unicode:73
unicode:32
l unicode:108
o unicode:111
v unicode:118
e unicode:101
unicode:32
y unicode:121
o unicode:111
u unicode:117
, unicode:44
安 unicode:23433
妮 unicode:22958
妮
s
*/
26.slice\split\substr\substring
slice(startIndex:Number = 0, endIndex:Number = 0x7fffffff):String
返回一个字符串,该字符串包括从 startIndex 字符一直到 endIndex 字符(但不包括该字符)之间的所有字符。
split(delimiter:*, limit:Number = 0x7fffffff):Array
将 String 对象拆分为一个子字符串数组,方法是在所有出现指定 delimiter 参数的位置进行拆分。
substr(startIndex:Number = 0, len:Number = 0x7fffffff):String
返回一个子字符串,该子字符串中的字符是通过从指定的 startIndex 开始,按照 len 指定的长度截取所得的。
substring(startIndex:Number = 0, endIndex:Number = 0x7fffffff):
返回一个字符串,其中包含由 startIndex 指定的字符和一直到 endIndex - 1 的所有字符。
27.多行输入应用(XML的CDATA)
建立一个只含有一个CDATA节点的临时XML,讲多行文本直接复制其中
var xml:XML=
<txt>
<![CDATA[
My love my fate you will fade away
以后隔天与地
I love I hate I'll miss you always
我永远亦爱你
]]>
</txt>
var str:String = xml.toString();
trace(str);
/*输出:
My love my fate you will fade away
以后隔天与地
I love I hate I'll miss you always
我永远亦爱你
*/
28.正则表达式RegExp
flags:String —正则表达式的修饰符。其中包括:
g -- 使用 String 类的 replace() 方法时,指定此修饰符可替换所有匹配项,而不只替换第一个匹配项。此修饰符对应于 RegExp 实例的 global 属性
var re2:RegExp = /Bob/g;
var str = "Bob is a bad man ,is it Bob?";
var repStr = "Tom";
trace(str.replace(re2,repStr)); // Tom is a bad man ,is it Tom?
i --计算正则表达式时不区分大小写。此修饰符对应于 RegExp 实例的 ignoreCase 属性。
var re2:RegExp = /Bob/i;
var str = "bob is a bad man ,is it bob?";
var repStr = "Tom";
trace(str.replace(re2,repStr)); // Tom is a bad man ,is it bob?
s -- 点 (.) 字符与换行符相匹配。请注意,此修饰符对应于 RegExp 实例的 dotall 属性。
var str:String = "<p>Hello\n"+ "again</p>"+ "<p>Hello</p>";
var pattern:RegExp = /<p>.*?<\/p>/;
trace(pattern.dotall) // false
trace(pattern.exec(str)); // <p>Hello</p>
pattern = /<p>.*?<\/p>/s;
trace(pattern.dotall) // true
trace(pattern.exec(str)); /*<p>Hello
again</p>
*/
m -- 尖号 (^) 字符和美元符号 ($) 在换行符之前和之后匹配。此修饰符对应于 RegExp 实例的 multiline 属性。
var pattern:RegExp = /^bob/;
var str:String = "foo\n"
+ "bob";
trace(pattern.multiline); // false
trace(pattern.exec(str)); // null
pattern = /^bob/m;
trace(pattern.multiline); // true
trace(pattern.exec(str)); // bob
x -- 忽略 re 字符串中的空白字符,所以您可以编写更加易读的构造函数。此修饰符对应于 RegExp 实例的 extended 属性。
var rePhonePattern1:RegExp = /\d{3}-\d{3}-\d{4}|\(\d{3}\)\s?\d{3}-\d{4}/;
var str:String = "The phone number is (415)555-1212.";
trace(rePhonePattern1.extended) // false
trace(rePhonePattern1.exec(str)); // (415)555-1212
var rePhonePattern2:RegExp = / \d{3}-\d{3}-\d{4} | \( \d{3} \) \ ? \d{3}-\d{4} /x;
trace(rePhonePattern2.extended) // true
trace(rePhonePattern2.exec(str)); // (415)555-1212
匹配日期
Exp
var pattern:RegExp = /[0-3][0-9]\/[0-1][0-9]\/[0-2][0-9][0-9][0-9]/g;
var str:String = "The date is 23/12/2009 or 23/11/2009 or 09/25/2009.";
trace(str.match(pattern)); // 23/12/2009,23/11/2009
标签:数组,trace,ActionScript3.0,pattern,----,var,str,要点,Array
From: https://blog.51cto.com/u_9427273/6410295