Wml的標準函數庫

來源:互聯網
上載者:User
標準|函數 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)
說明:初始化需隨機數字順序並回傳一個Null 字元串
如果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的值超過字串的範圍,則回傳Null 字元串("")
範例: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大於最後的索引值,則回傳會Null 字元串("")
如果lenght<=0,傳會Null 字元串("")
範例: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的元素數目,Null 字元串("")是有效元素,這表示了這程式永遠不會回傳一個小於或等於0得值。
參數:string=字串
separator=字串
回傳值:整數或invalid
例外狀況:如果separator是個Null 字元串,則回傳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值大於元素的數目,則回傳最後一個元素。
如果字串為空白字串,則回傳Null 字元串。
如果index值為浮點數,則須先使用Float.int()來計算出正確的索引值。
參數:string=字串
index=數字
separator=字串
回傳值:字串或invalid
例外狀況:如果separator是個Null 字元串,則回傳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值大於元素的數目,則回傳最後一個元素。
如果字串為空白字串,則回傳Null 字元串。
如果index值為浮點數,則須先使用Float.int()來計算出正確的索引值。
參數:string=字串
element=字串
index=數字
separator=字串
回傳值:字串或invalid
例外狀況:如果separator是個Null 字元串,則回傳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值大於元素的數目,則回傳最後一個元素。
如果字串為空白字串,則回傳Null 字元串。
如果index值為浮點數,則須先使用Float.int()來計算出正確的索引值。
參數:string=字串
element=字串
index=數字
separator=字串
回傳值:字串或invalid
例外狀況:如果separator是個Null 字元串,則回傳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是個Null 字元串,則回傳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提供的格式化的字串,這個格式字串只能由一種特定格式,並能放置於字串的任何地方,如果超過一種以上的格式需要使用,則能會使用最左邊的格式,至於其他格式則有Null 字元串代替,這些格式如下:

[width][.precision]type
width參數為非負的是近制整數,這個參數控制與顯現字元的最小數目,如果輸出的字數小於指定的寬度width,則會在字串的左邊加上空白,直到符合最小寬度的要求,width參數永遠不會是值value被刪減,如果輸出的字數大於特定的寬度或並沒指定寬度的話,value中所有的字元都會被顯現。

precision參數是個非負的十進位整數,這個引號之前必須限價上(.)的符號,其目的是用來設定輸入值的精確度,這個值的解議會跟給予的格式有關:

d 界定數字最小的顯現數目,如果value中數位數目超過precision的值,輸入值會在其左邊加上0,如果數位數目超過precision值,value的值並不會被刪減,預設的precision值為1,如果precision值設定為0,而且value頁被轉換成0,則結果將是一個Null 字元串。

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"


相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。