电脑技术学习

WML语言基础(WAP建站)六

dn001
WML;Script标准函数库

这节会讨论标准的WML;Script函数库。

6.1;WML;Script规则

这些标准函数库提供一个扩展WML;Script语言的机制,这些特定的函数库必须遵循WML;Script的规则。

支持的数据格式

下面的WML;Script格式使用于程序的定义之中,这样能记录程序参数与回转值的格式。

Boolean
Integer
Float
String
Invalid

除此之外,如果整数与浮点数参数值格式都能接受的话,则能使用number来记录参数格式,如果使用的格式是所支持的格式,则能用any来记录。

数据格式转换

函数库程序发生错误的处理方式和WML;Script语言一样。

invalid程序参数会产生invalid的回传值。

程序的参数无法转成所需要使用参数格式,则会产生invalid的回传值。

与程序相关的错误得出回传一个适当的错误码,至于这个值就要看每个程序如何定义。

6.2;Lang函数库

名称:Lang

说明:这个函数库所含的程序同WML;Script语言的核心有很密切的关系。

abs

程序:abs(value)
说明:回传给予数的绝对值。
如果给予的数是整数,则回传整数。
如果给予的数是浮点数,则回传浮点数。
参数:value=数字。
回传值:数字或invalid。
例外状况:var;a;=-3;
var;b;=Lang.abs(a);//b=3

min;


范例:var;a;=;-3
var;b;=;Lang.abs(a);;
var;c;=;Lang.min(a.b);
var;d;=;Lang.min(45、76.3);//d=45(ingteger)
var;e;=;Lang.min(45、76.3);//e=45(ingteger)

max

程序:max(value1,value2)
说明:回传值给予的两个数之间的较大值,回传的值于格式同所选数值的值与格式相同,其选取的方式如下:
WML;Script运算符数据格式的整数与浮点数转换法则可用来确认数据格式,以便执行比较的动作。
参数:value1;=数字
value2;=数字
回传值:数字或invalid
例外状况:无
范例:var;a;=-3;
var;b;=Lang.abs(a);//b=3
var;c;=;Lang.min(a.b);
var;d;=;Lang.min(45、76.3);//d=45(ingteger)
var;e;=;Lang.min(45、76.3);//e=45(float)

parseInt

程序:parseInt(value)
说明:回传由字符串value所定义的整数值,合法的整数语法由WML;Script数值字符串文法或是近值整数是字所界定,下列为额外的解析法则:
第一个字符不是由+、-或十进制数字当开头的话,解译结束。
结果:解析过的字符串回转换整数值。
范例:var;i;=Lang.parseInt(/"1234/");;//;i=1234
var;j;=Lang.parseInt(/"100;m/s/");;//;j=100

parseFloat

程序:parseFloat(value)
说明:回传由字符串value所定义的浮点数值,合法的浮点数语法由WML;Script数值字符串文法或是近值整数实字所界定,下列为额外的解析法则:
第一个字符无法解析成浮点数表达式,解析结束。
结束:解析过的字符串回转换成浮点数。
参数:value=字符串
回传值:浮点数或invalid
例外状况:解析错误则传回invalid
范例:var;a;=Lang.parseFloat(/"123.7;Hz/");;//;a=123.7
var;b;=Lang.parseFloat(/"7.34e2;Hz/");;//;b=7.34e2
var;c;=Lang.parseFloat(/"70.0e-2;F/");;//;c=70.0e-2
var;d;=Lang.parseFloat(/"-1.c/");;//;d=0.1
var;e;=Lang.parseFloat(/"100/");;//;e=100.0
var;f;=Lang.parseFloat(/"Number:5.5/");;//;f=invalid
var;g;=Lang.parseFloat(/"7.3e;meters/");;//;g=invalid
var;h;=Lang.parseFloat(/"7.3e-;m/s/");;//;h=invalid

isInt

程序:isInt(value)
说明:如果各预的值value能使用parseInt(value)转成整数则回传布尔值ture,否则传回false。
参数:value=任意值
回传值:布尔值或invalid
例外状况:无
范例:var;a=Lang.inInt(/"-123/");;//ture
var;a;=Lang.minInt(/"123.33/");;//ture
var;a;=Lang.minInt(/"string/");;//false
var;a;=Lang.minInt(/"#123/");;//false
var;a;=Lang.minInt(/"invalid/");;//invalid

isFloat

程序:isFloat(value)
说明:如果各预的值value能使用parseInt(value)转成整数则回传布尔值ture,否则传回false。
参数:value=任意值
回传值:布尔值或invalid
例外状况:无
范例:var;a=Lang.inInt(/"-123/");;//ture
var;a;=Lang.minInt(/"123.33/");;//ture
var;a;=Lang.minInt(/"string/");;//false
var;a;=Lang.minInt(/"#123/");;//false
var;a;=Lang.minInt(/"invalid/");;//invalid

maxInt

程序:maxInt()
说明:传回最大的整数值。
参数:无
回传值:整数2147483647
例外状况:无
范例:var;a;=Lang.minInt();

minInt

程序:minInt()
说明:传回最小的整数值
参数:无
回传值:整数-2147483647
例外状况:无
范例:var;a;=Lang.minInt();

float

程序:float()
说明:如果有支持浮点数的话传回ture,没有的话传回false。
参数:无
回传值:布尔值
例外状况:无
范例:var;floatsSupported;=;Lang.float();

exit

程序:exit(value)
说明:结束WML;Script位码的解译然后回到调用WML;Script解译器者的控制,并回传指定值value,你可以使用这个程序来执行由一般程序的结束,而且WML;Script位码的执行必须停止。
参数:valre=任意值
回传值:无,这个程序结束解译
例外状况:无
范例:Lang.exit(/"Value:/";+;myVal);//Returns;a;string
Lang,exit(invalid);//;Returns;invalid

abort

程序:abort(errorDescription)
说明:中止WML;Script位码的解译然后回到调用WML;Script解译器者的控制,并回传;errorDescription,你能使用这个程序执行不正常的中止,调用程序者检测到有严重错误,WML;Script的执行并须中断。
如果errorDescription的格式为invalid,字符串invalid用代替errorDescription的使用。
参数:errorDescription;=字符串
回传值:无,这个程序结束解译
例外状况:无
范例:Lang.abort(/"Error:/";+;errVal);;//;Error;value;string

radndom

程序:random(value)
说明:回传一个正数的整数值,也就是说要大于或等于零,但必须要小于给定值value,回传值是由近是正常分布所随机选取的值。
参数:value=整数
回传值:整数或invalid
例外状况:如果value等于0,则程序回传0
如果value小于0,则程序回传invalid
范例:var;a;=10;
var;b;=Lang.random(5.1)*a;//b=0..50
var;c;=;Lang.random(/"string/");;//;c=invalid

reed

程序:seed(alue)
说明:初始化需随机数字顺序并回传一个空字符串
如果value为0或正整数,给予的value则用来初始化,反之则使用随机初始化的值。
如果value为浮点数,则会先使用Float.int()来计算确切的整数值。
参数:value=整数
回传值:字符串或invalid]
例外状况:无
范例:var;a;=Lang.reed(123);//;a=/"/"
var;b;=Lang.random(20);;//;b=0..20
var;c;=;Lang.seed(/"seed/");;//;c=invalid;(random;seed;//left;unchanged)

characterSet

程序:characterSet()
说明:回传WML;Script解译器所支持的字集,回传只是个整数用来记录由IANA所设定的MIB;Enum值,这个只能表示所有的字集。
参数:无
回传值:整数
例外状况:无
范例:Var;charset;=;Lang.characterSet();;//charset;=;4;for;latinl

6.3;Float函数库

名称:Float
说明:这个函数库包含了典型与常用的浮点数算术程序。

int

程序:int(value)
说明:回传给予值的整数部分。
参数:value=数字
回传值:整数或invalid
例外状况:无
范例:var;a;=3.14;
var;b;=Float.in(a);;//b=3
var;c;=Float.in(-2.8);;//c=-2

floor

程序:floor(value)
说明:回传整数值,这个只要最接近给予值但不能大于它。
如果value已经是个整数,其结果就是这个值本身。
参数:value=数字
回传值:整数或invalid
例外状况:无
范例:var;a;=3.14;
var;b;=Float.in(a);;//b=3
var;c;=Float.in(-2.8);;//c=-3

ceil

程序:ceil(value)
说明:回传一个只要最接近给予值但不能小于它的整数值。
如果value已经是个整数,其结果就是这个值本身。
参数:value=数字
回传值:整数或invalid
例外状况:无
范例:var;a;=3.14;
var;b;=Float.in(a);;//b=4
var;c;=Float.in(-2.8);;//c=-2

pow

程序:pow(x,y)
说明:回传x的y次方值。
如果x是负数,则y必须为正数。
参数:x=数字
   ;y=数字
回传值:浮点数或invlid
例外状况:如果x=;=0而且;y<0,则回传invalid
如果x<0而且y不是个整数,则回传invalid
范例:var;a;=3
var;b;=Float.pow(a,2);;//b=9

round

程序:round(value)
说明:传回最接近给予值的整数
若两个整数值跟value接近的程序相等,则选择比较大的数。
若value已经是个正数,其结果就是value本身。
参数:value=数字
回传值:整数或invalid
例外状况:无
范例:var;a=Float.round(3.5);;//;a=4
var;b=Float.round(-3.5);;//b=-3
var;c=Float.round(0.5);;//;c=1
var;d=Float.round(-0.5);;//d=0

squt

程序:sqrt(value)
说明:传回给予值value的平方根近似值。
参数:value=浮点数
回传值:浮点数或invalid
例外状况:如果value负数,则回传invlid
范例:var;a=4;
var;b=Float.squt(a);;//b=2.0
var;c=Float.squt(5);;//c=2.2360679775

maxFloat

程序:maxFloat()
说明:传回IEEE;754所支持的但准浮点数格式中最大的浮点数值。
参数:无
回传值:浮点数3.40282347E+38
例外状况:无
范例:var;a=Float.maxFloat();

minFloat

程序:minFloat()
说明:传回IEEE;754所支持的但准浮点数格式中最小的浮点数值。
参数:无
回传值:浮点数1.17549435E-38
例外状况:无
范例:var;a=Float.minFloat();

6.4;string函数库

名称:字符串
说明:这个函数库包含了字符串程序的集合,一个字符串可以是字符数组,每个字符都有个索引,字符串的第一个字浮的索引为0,字符串的长度是字符在数组中的数目。

你能使用一些特殊的分隔符号来界定不同的字符串,这样你就能存取这些有分隔符号予元素索引所界定出的元素,字符串中第一个元素的索引值为0,每个字符串分隔符号回分隔出两个元素,但字符是不能用来做分隔符号。
一个空格的字符可能是下列字符其中之一:

TAB:水平跳格定位(horizontal;tabulation)
VT:垂直跳格定位(ertival;tabulation)
FF:跳页(from;feed)
SP:空格(space)
LF:跳行(line;feed)
CR:归位(carriage;return)

length

程序:length(string)
说明:传回给予字符串的长度(字符的数目)。
参数:string=字符串
回传值:整数或invalid
例外状况:无
范例:var;a=/"ABC/";
var;b=string.length(a);;//b=3
var;c=string.length(/"/");;//c=0
var;d=string.length(342);;//d=3

is;Empty

程序:is;Empty(string)
说明:如果字符串长度为零则传回布尔值true,反之传回false。
参数:string=字符串
回传值:布尔值或invalid
例外状况:无
范例:var;a=/"Hello;
var;b=/"/";
var;c=sting.isEmpty(a);;//c=false
var;c=sting.isEmpty(b);;//d=ture;
var;c=sting.isEmpty(ture);;//e=false;

charAt

程序:charAt(sting.index)
说明:回传string中index值所指定的字符。
参数:string=字符数
index=数字(回传回index所指定的字符)
回传值:字符串或invalid
例外状况:如果index的值超过字符串的范围,则回传空字符串(/"/")
范例:var;a=/"My;name;is;Joe/"
var;b=sting.charAt(a,0);;//b=;/"M/"
var;c=sting.charAt(a,100);;//c=;/"/"
var;d=sting.charAt(34.0);;//d=/"3/"
var;e=sting.charAt(a,/"first/");;//e=invalid

subString

程序:subString(string,startIndex,length)
说明:传回一个新的字符串来代替所给予的字符串,;这个新字符串给定的索引值开始,它的长度有所给予的length决定。
如果startIndex小于0,则会0来当作索引值。
如果length大于剩余字符的数目,则lenght会由剩余的字符数来代替。
如果startIndex予lenght是浮点数,则会先使用Float.int()来计算正确的整数值。
参数:string=字符数
startIndex=数字
lenght=数字
回传值:字符串或invalid
例外状况:如果startIndex大于最后的索引值,则回传会空字符串(/"/")
如果lenght<=0,传会空字符串(/"/")
范例:var;a=/"ABCD/";
var;b=String.subString(a,1,2);;//b=/"BC/"
var;c=String.subString(a,2,5);;//c=/"CD/"
var;d=String.subString(1234,0,2);;//d=/"12/"

find

程序:find(string,substring)
说明:传会所要寻找的字符串substring和原始字符串string相符的第一个字符的索引值。
如果没有相符,则传会整数值-1。
两个字符传如果是相等的话,是定义为不符合。
参数:string=字符串;
substring=字符串
回传值:整数或invalid
例外状况:无
范例:var;a=/"abcde/";
var;b=String.find(a,/"cd/");;//b=2
var;c=String.find(34.2,/"de/");;//c=-1
var;d=String.find(a,/"gz/");;//d=-1
var;e=String.find(34,/"3/");;//e=0

replace

程序:eplace(tring,oldSubString,newSubString)
说明:传会新字符串,这个新字符串是由和所给予字符串string相符的旧字符传oldSubString使用新字符串newSubString字符串加以代替。如果两字符串相等的话,定义为相符。
参数:string=字符串
oldSubString=字符串
newSubString=字符串
回传值:字符串或invalid
例外状况:无
范例:var;a=/"Hello;Joe.What;is;up;Joe?/";
var;newName=/"Don/";
var;oldName=/"Joe/";
var;c=String.replace(a,oldName,newName);;//c=/"Hello;Don.What;is;up;Don?/"
var;d=String.replace(a,oldName,newName);;//c=/"Hello;Don.What;is;up;Don?/"

element

程序:element(string,separator)
说明:回传分隔符号separator所分隔的字符串string的元素数目,空字符串(/"/")是有效的元素,这表示了这程序永远不会回传一个小于或等于0得值。
参数:string=字符串
separator=字符串
回传值:整数或invalid
例外状况:如果separator是个空字符串,则回传invalid
范例:var;a=/"My;name;is;Joe;Age;50/";
var;b=String.elements(a,/"/");//b=6
var;c=String.elements(a,/";/");//c=3
var;d=String.elements(/"/",/";/");//d=1
var;e=String.elements(/"a/",/"/");//e=1
var;f=String.elements(/";/",/";/");//f=2
var;g=String.elements(/";;,;/",/";,/");//g=4
separator=;

elementAt

程序:elementAt(string,index,separator)
说明:寻找字符串string的第index个元素,这些元素是由分隔符号separator所加以分开,并回传相对应的元素。
如果index值小于0,则回传第一个元素。
如果index值大于元素的数目,则回传最后一个元素。
如果字符串为空字符串,则回传空字符串。
如果index值为浮点数,则须先使用Float.int()来计算出正确的索引值。
参数:string=字符串
index=数字
separator=字符串
回传值:字符串或invalid
例外状况:如果separator是个空字符串,则回传invalid
范例:var;a=/"Hello;Joe.What;is;up;Joe?/";
var;b=String.elementAt(a,0,/"/");;//b=/"My/"
var;b=String.elementAt(a,14,/";/");;//c=/";/"
var;b=String.elementAt(a,1,/";/");;//d=/"Age;50/"

removeAt

程序:removeAt(string,index,separator)
说明:将符合索引值index的分隔号separator与元素有字符串string中移出,并回传这个新字符串。
如果index值小于0,则回传第一个元素。
如果index值大于元素的数目,则回传最后一个元素。
如果字符串为空字符串,则回传空字符串。
如果index值为浮点数,则须先使用Float.int()来计算出正确的索引值。
参数:string=字符串
element=字符串
index=数字
separator=字符串
回传值:字符串或invalid
例外状况:如果separator是个空字符串,则回传invalid
范例:var;a=/";A;A;B;C;D/";
var;s=;/"/";
var;c=String.removeAt(a,1,s);;//b=/"A;B;C;D/"
var;d=String.removeAt(a,0,/";/");;//c=/";B;C;D/"
var;e=String.removeAt(a,14,/";/");;//d=/"A;A/"

replaceAt

程序:replaceAT(string,index,separator)
说明:在特定的index中的元素,使用所给予的元素element来代替,并回传这个新字符串。
如果index值小于0,则回传第一个元素。
如果index值大于元素的数目,则回传最后一个元素。
如果字符串为空字符串,则回传空字符串。
如果index值为浮点数,则须先使用Float.int()来计算出正确的索引值。
参数:string=字符串
element=字符串
index=数字
separator=字符串
回传值:字符串或invalid
例外状况:如果separator是个空字符串,则回传invalid
范例:var;a=;/"B;C;;E/";
var;s=/"/";
var;d=String.replaceAT(a,/"A/",0,s);;//b=/"A;C;E/"
var;e=String.replaceAT(a,/"F/",5,/";/");;//d=/"B;C;F/"

InsertAt

程序:insertAt(string,index,separator)
说明:将元素element与相对应的分隔符号separator插入与原始字符串string,在特定的element中的元素
如果index值小于0,则0会用来当索引值。
如果index值大于元素的数目,则元素element会附加上字符串string的为端。
如果字符串string为空字符串,则回传包含所给予元素element的新字符串。
如果index值为浮点数,则需先使用Float.int()来计算出正确的索引值。
参数:string=字符串
element=字符串
index=数字
separator=字符串
回传值:字符串或invalid;
例外状况:如果separator是个空字符串,则回传invalid
范例:var;a=;/"B;C;;E/";
var;s=/"/";
var;b=String.insertAt(a,/"A/",0,s);;//b=/"A;B;C;E/"
var;c=String.insertAt(a,/"X/",3,s);;//c=/"B;C;E;X/"
var;d=String.insertAt(a,/"D/",1,/";/");;//d=/"B;C;D;E/"
var;e=String.insertAt(a,/"F/",5,/";/");;//e=/"B;C;E;F/"

squeeze

程序:squeeze(string)
说明:将字符串string中所有连续的空格减少为一个空格。
参数:stromg=字符串
回传值:字符串或invalid
例外状况:无
范例:var;a=/"Hello/";
var;b=/"Bye;Jon.See;you!/";
var;c=String.squeeze(a);;//c=/"Hello/"
var;d=String.squeeze(b);;//d=/"Bye;Jon.See;you!/"

trim

程序:trim(string)
说明:将字符串string中所有开头与连续的空格删除。
参数:string=字符串
回传值:字符串或invalid
例外状况:无
范例:var;a=/"Hello/";
var;b=/"Bye;Jon.See;you!/";
var;c=String.squeeze(a);;//c=/"Hello/"
var;d=String.squeeze(b);;//d=/"Bye;Jon.See;you!/"

compare

程序:compare(string,string2)
说明:这个程序的回传值会指出string1与string2在语汇上关系,这个关系是基于自然字集的字符码之间,其回传值如下:
如果string1小于string2,传会-1。
如果string1等于string2,传会-1。
如果string1大于string2,传会-1。
参数:string1=字符串
string2=字符串
回传值:整数或invalid
例外状况:无
范例:var;a=/"Hello/";
var;b=/"Hello/";
var;c=String.compare(a,b);;//c=0
var;d=String.compare(/"Bye/",/"Jon/");;//d=-1
var;e=String.compare(/"Jon/",/"Bye/");;//e=1

toString

程序:toString(value)
说明:回传一个能表示所给予的值value的字符串,这个程序跟WML;Script的转换是一样的,除了invlaid值会回传一个/"invalid/"字符串。
参数:value=任意值
回传值:字符串
例外状况:无
范例:var;a=string.toString(12);;//;a=/"12/"
var;a=string.toString(true);;//;b=/"true/"

format

程序:format(format,value)
说明:将给予的值value转换成字符串,并依照所给予的格式format提供的格式化的字符串,这个格式字符串只能由一种特定格式,并能放置于字符串的任何地方,如果超过一种以上的格式需要使用,则能会使用最左边的格式,至于其他格式则有空字符串代替,这些格式如下:

[width][.precision]type
width参数为非负的是近制整数,这个参数控制与显现字符的最小数目,如果输出的字数小于指定的宽度width,则会在字符串的左边加上空白,直到符合最小宽度的要求,width参数永远不会是值value被删减,如果输出的字数大于特定的宽度或并没指定宽度的话,value中所有的字符都会被显现。

precision参数是个非负的十进制整数,这个引号之前必须限价上(.)的符号,其目的是用来设定输入值的精确度,这个值的解议会跟给予的格式有关:

d;界定数字最小的显现数目,如果value中数字的数目超过precision的值,输入值会在其左边加上0,如果数字的数目超过precision值,value的值并不会被删减,预设的precision值为1,如果precision值设定为0,而且value页被转换成0,则结果将是一个空字符串。

f;界定十进制小数后的数字数目,如果十进制的小数点出现了,在小数点之后至少要有一位数,这个值会被四舍五入到近似的数字数值,预设的precision为6,如果precision为0或小数点(.)后没有数字,则不会显现小数点,当value值的小数点后数字数目小于precision的值,字母0为被加入直到填满栏位(如:String.format(/"%2.3f/",1.2)会是/"1.200/")

s;界定字符所要显现的最大数目,预设值是显现所有的字符,当width值大于precision值,width值是可以忽略的,跟width值不同的是,precision只可能会造成浮点数值的四舍五入或输入值的删减。

type参数是唯一格式的参数,他出现在任何的格式栏为选项之后,type字符决定了所给予的value将会解译成整数,浮点数或字符串,支持的type参数如下:
d;整数:输入值的格式[-]dddd,这里的dddd是一个或以上的十进制数字。
f;浮点数:输入值的格式[-]dddd.dddd,这里的dddd是一个或以上的十进制数字,在小数点之前的数字数目和数字的大小有关,小数点之后的数字数目和精确度有关。
s;字符串:字符的显现跟精确度有关。
百分比字符(%)在格式字符串中能使用额外的百分比字符加以表示(%%)。
参数:format=字符串
value=任意值
回传值:字符串或invalid
例外状况;无效的格式会回传invalid值。
范例:var;a=45;
var;b=-45;
var;c=/"now/";
var;d=1.2345678;
var;e=String.format(/"e:%6d/",a);;//e=/"e:45/"
var;e=String.format(/"%6d/",b);;//f=/"-45/"
var;e=String.format(/"e:%6d/",a);;//g=/"0045/"
var;e=String.format(/"%6.4d/",b);;//h=/"-0045/"
var;e=String.format(/"Do;it;%s/",c);;//i=/"Do;it;now/"
var;e=String.format(/"%3f/",d);;//j=/"1.2345678/"
var;e=String.format(/"%10.2f%%/",a);;//k=/"1.23%./"
var;e=String.format(/"%3f;%2f/",a);;//l=/"1.234567./"
var;e=String.format(/"%.0d/",0);;//m=/"/"
var;e=String.format(/"%.7d/",/"Int/");;//n=/"invalid/"
var;e=String.format(/"%s/",ture);;//o=/"ture/"