欧美三区四区_av先锋影音资源站_亚洲第一论坛sis_影音先锋2020色资源网_亚洲精品社区_在线免费观看av网站_国产一区二区伦理_亚洲欧美视频一区二区_99视频精品全部免费在线_精精国产xxxx视频在线

詳談WML Script標準函數庫_Xml教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:Xml教程之WML的簡單例子及編輯、測試方法
完成WAP服務器的建立和WAP瀏覽器的安裝之后,我們接下來就可以使用WML語言來編寫WAP網頁或應用,并通過WAP服務器及瀏覽器進行調試。從本章開始我們將系統地學習WML語言,本章主要講解WML語言的基礎知識,下一章全面講解WML的語法、標簽和規則。 2.1 WML的簡

 這節會討論標準的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"

 

分享:WML學習(一):概述和基本規則
概述 WML(Wireless Markup Language - 無線標記語言)這種描述語言同我們常聽說的HTML語言同出一家,都屬于X ML語言這一大家族。HTML語言寫出的內容,我們可以在我們的PC機上用IE或是Netscape等瀏覽器進行閱讀,而 WML語言寫出的文件則是專門用來在手機等的

來源:模板無憂//所屬分類:Xml教程/更新時間:2010-03-05
相關Xml教程
台湾佬综合网| 亚洲伦理一区二区三区| 欧美一区二区三区激情| 亚欧成人精品| 欧美区一区二区三区| 91高跟黑色丝袜呻吟在线观看| 性生交大片免费看l| 成人性生活av| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美午夜电影一区| 91色p视频在线| 色婷婷精品久久二区二区密| 九九久久国产| 99re亚洲国产精品| 久久精品99久久香蕉国产色戒| 黄色一级片av| 91黑人精品一区二区三区| 一区二区三区午夜视频| 欧美午夜影院在线视频| 亚洲一区二区三区视频播放| 欧美精品黑人猛交高潮| 久久精品一级| 欧美激情一区二区三区| 久久久欧美一区二区| 日韩亚洲在线视频| 亚洲经典一区二区| 狠狠色丁香久久婷婷综合丁香| 日韩精品视频在线观看网址| 成人av在线播放观看| 中文字幕乱码视频| 模特精品在线| 亚洲福利小视频| 国产a级片免费看| 日日夜夜狠狠操| 中文亚洲字幕| 欧美一区二区三区日韩视频| 日本一区二区三区四区高清视频| 久久国产精品波多野结衣| 欧美激情国产在线| 91精品办公室少妇高潮对白| 粉嫩av四季av绯色av第一区| 国产精品嫩草影院俄罗斯| 国产一区二区三区91| 午夜精品aaa| 91精品国产综合久久久久久丝袜| 日本午夜精品视频| 国际精品欧美精品| 欧美日韩综合视频| 久久久久网址| 中文字幕亚洲精品一区| 99精品免费| 亚洲福利视频二区| 日韩精品综合在线| www久久久久久| 国产一区二区三区四区五区美女 | 精品国产导航| 亚洲一区二区三区在线播放| 91丨九色丨国产| 国精产品一区一区二区三区mba| 日韩中文欧美| 欧美网站大全在线观看| 亚洲一区二区精品在线观看| 中文字幕一二三四| 麻豆国产精品官网| 欧美中文字幕一区二区| 日本不卡一二三区黄网| 亚洲另类图片色| 国产成人黄色片| 亚洲AV成人无码一二三区在线| av不卡在线观看| 久久久久中文字幕2018| 漂亮人妻被黑人久久精品| 欧美久久精品| 色先锋资源久久综合| 欧美日韩精品综合| 黄色av网站免费| 蜜臀久久99精品久久久久久9| 在线观看不卡av| 成人免费无码av| 免费成人高清在线视频| 亚洲精品国产一区二区精华液| 亚洲一区二区自拍| 国产一级免费av| 最新日韩在线| 亚洲欧洲在线看| 欧美第一页浮力影院| 国语精品视频| 性感美女极品91精品| 精品网站在线看| 成人一二三四区| 国内精品在线播放| 亚洲91精品在线观看| 在线不卡av电影| 91tv官网精品成人亚洲| 精品福利一区二区三区免费视频| 国产极品粉嫩福利姬萌白酱| 免费视频观看成人| 亚洲国产精品自拍| 日韩精品伦理第一区| 国产日韩一级片| 91免费在线看| 国产在线观看91精品一区| 五月天丁香激情| 视频一区中文字幕国产| 欧美精品在线网站| 国产交换配乱淫视频免费| 牛夜精品久久久久久久99黑人| 日韩美女av在线| 亚洲天堂国产视频| 琪琪久久久久日韩精品| 欧美日韩黄色影视| 97国产精东麻豆人妻电影| 精品中文在线| 在线视频亚洲一区| 农民人伦一区二区三区| 丰满少妇一区| 深夜福利久久| 国产成人午夜片在线观看高清观看| 久久99热精品| 摸摸摸bbb毛毛毛片| 亚洲精品123区| 久久手机免费视频| 性欧美一区二区| 好看的日韩av电影| 社区色欧美激情 | 成年人在线观看av| 精品白丝av| 乱亲女秽乱长久久久| 无码人妻丰满熟妇啪啪欧美| 日韩一级大片| 九九热精品视频在线播放| 欧美aaa级片| 日韩电影在线一区二区| 欧美一区第一页| 久久久久久久久久久久久久免费看 | av漫画在线观看| 天天射成人网| 中文字幕亚洲欧美日韩2019| 丝袜美腿中文字幕| 99精品视频免费观看| 欧美激情精品久久久久久免费印度 | 亚洲欧洲性图库| 视频一区在线免费观看| 日韩免费电影| 精品久久香蕉国产线看观看gif| 激情五月五月婷婷| 国产精品igao视频网网址不卡日韩| 91黄色免费看| 欧美少妇性生活视频| 久久99国内| 亚洲品质视频自拍网| 久久久久国产精品区片区无码| 亚洲美女一区| 68精品久久久久久欧美| 亚洲精品男人天堂| 2021中文字幕一区亚洲| 久久爱av电影| 午夜无码国产理论在线| 色婷婷久久99综合精品jk白丝| 欧美视频在线观看网站| 日韩精品亚洲aⅴ在线影院| 日韩成人高清在线| 泷泽萝拉在线播放| 日韩精品免费视频人成| 国产精品毛片a∨一区二区三区|国 | 懂色av蜜臀av粉嫩av分享吧最新章节 | 中文精品99久久国产香蕉| a级片在线观看| 美女精品一区二区| 国产主播精品在线| 国产不卡av在线播放| 亚洲一区二区中文在线| 国产欧美日韩网站| 免费久久精品| 日本三级亚洲精品| 69堂亚洲精品首页| 日韩欧美亚洲另类| 欧美日韩午夜| 97人人模人人爽人人喊中文字| 欧美另类一区二区| 国产蜜臀av在线一区二区三区| 亚洲人一区二区| 经典三级久久| 亚洲黄在线观看| 91在线无精精品白丝| 国产美女一区二区| 久久资源av| 图片一区二区| 亚洲国产成人精品一区二区| 精品无人区无码乱码毛片国产 | 亚洲欧美激情四射在线日| av网站免费在线看| 国产精品一区二区黑丝| 精品无人区一区二区三区竹菊| se69色成人网wwwsex| 欧美一区在线视频| www.色天使| 国产一区二区三区综合| 久久久久久国产精品mv| 亚洲网站三级| 日韩电视剧免费观看网站| 青青草自拍偷拍| 成年人午夜久久久| 一区二区在线中文字幕电影视频| 国产精品任我爽爆在线播放| 自拍偷拍亚洲在线| 亚洲精品1区2区3区| 中文字幕五月欧美| 黄色网页免费在线观看| 永久91嫩草亚洲精品人人| 欧美性受xxxx白人性爽| 国产女同91疯狂高潮互磨| 色香蕉成人二区免费| 亚洲国产精品第一页| 国模少妇一区二区三区| 欧美日韩精品中文字幕一区二区| 在线精品自拍| 久久久精品日本| 国产一级片免费视频| 欧美日韩国产精品专区 | 国产情侣一区| 91免费精品视频| 欧美日韩亚洲国产| 亚洲国产精品热久久| 男人在线观看视频| 亚洲国产经典视频| 97成人在线免费视频| 中文字幕午夜精品一区二区三区| 国产不卡av在线免费观看| 亚洲欧美高清视频| 欧美一级高清片| 日韩在线一卡二卡| 亚洲国产经典视频| 国产精品久久久久9999小说| 999在线观看精品免费不卡网站| 亚洲一区二区三区四区在线播放| 先锋影音一区二区| 中文字幕日韩综合av| 九九精品免费视频| 狠狠色狠狠色综合日日小说| 中文字幕无人区二| 国产高清不卡一区二区| 国产又黄又爽免费视频| 欧美高清在线| 国产日韩中文字幕| 久久69成人| 啊v视频在线一区二区三区 | 日韩情涩欧美日韩视频| 国产suv精品一区二区68| 国产精品不卡视频| 五月激情婷婷在线| 极品美女销魂一区二区三区免费| 亚洲黄色成人久久久| 日本大胆欧美| 国产在线久久久| 99久久这里有精品| 久热精品视频在线免费观看| 国产伦一区二区| 欧美一卡2卡3卡4卡| 久草网站在线观看| 亚洲国产成人高清精品| 五月天激情小说| 91在线视频在线| 男女曰b免费视频| 日本中文字幕一区二区有限公司| 神马影院午夜我不卡影院| 国产精品国产一区| 成人一区二区三区四区| 欧美大奶一区二区| 国产精品高清在线观看| 在线观看欧美| 欧美精品18videos性欧美| 五十路在线观看| 亚洲一区二区久久| 中国a一片一级一片| 欧美一级电影网站| 国产成人在线观看网站| 在线视频中文字幕一区二区| 亚洲区一区二区三| 亚洲观看高清完整版在线观看| a级在线观看视频| 国产精品美女www爽爽爽| 亚洲热在线视频| 91视视频在线直接观看在线看网页在线看| 久久9精品区-无套内射无码| 久久综合影视| 一区二区三区四区免费观看| 99热免费精品在线观看| 亚洲欧洲日韩精品| 亚洲高清av| 性欧美大战久久久久久久免费观看| 羞羞色午夜精品一区二区三区| 国产欧美日韩伦理| 久久中文视频| 国产精品日韩欧美一区二区三区| 精品国产一区二区三区四区| 亚洲一区二区三区毛片| 精品欧美激情在线观看| 成人三级在线| 欧美3p视频| 久久99精品国产一区二区三区| 欧美国产偷国产精品三区| 久久久久久欧美精品色一二三四| 亚洲激情久久| 欧美精品一区二区三区在线看午夜| 五月婷婷六月综合| 欧美动漫一区二区| 韩日精品视频| 亚洲精品中文综合第一页| 99精品欧美| 国产尤物av一区二区三区| 麻豆国产精品官网| 东京热加勒比无码少妇| 成人一区二区三区视频在线观看 | 欧美日韩亚洲国产精品| 一本色道久久综合亚洲精品婷婷| 国产欧美日韩综合一区在线播放| 中文字幕乱码免费| 麻豆国产精品777777在线| 免费观看精品视频| 北条麻妃一区二区三区| 中文字幕丰满乱码| 国产女主播在线一区二区| 精品人妻一区二区免费| 中文字幕亚洲在| 亚洲精品国产熟女久久久| 精品久久久久久亚洲精品| 久久久久亚洲av成人片| 91精品国产欧美日韩| 久久久久久av无码免费看大片| 亚洲免费人成在线视频观看| 亚洲a视频在线| 欧美成人中文字幕在线| 国产激情精品一区二区三区| 国产精品日日摸夜夜添夜夜av| 欧美欧美黄在线二区| 久久久www免费人成黑人精品| 亚洲国产裸拍裸体视频在线观看乱了中文| 一级一片免费播放| 日韩av二区在线播放| 久久国产乱子伦免费精品| 91免费在线播放| 97人妻天天摸天天爽天天| 午夜视频在线观看一区二区三区| 国产亚洲精品久久久久久打不开 | 日韩综合在线观看| 亚洲免费小视频| 欧美7777| 国产精品91久久久久久| 欧美综合久久| 一本色道婷婷久久欧美 | 久久精品欧美日韩| a级大片在线观看| 91激情五月电影| 中文字幕欧美人妻精品| 日韩有码在线观看| 欧美久久一区二区三区| 99精品国产高清一区二区| 激情久久久久久久| 一区二区传媒有限公司| 久久久久久久久免费| 国内精品卡一卡二卡三| 欧美日韩精品一区二区三区四区| 国产又黄又粗又猛又爽| 久久久久久成人精品| 欧美五码在线| 日韩视频在线播放| 国产资源在线一区| 久久久男人的天堂| 疯狂做受xxxx欧美肥白少妇| 欧美一级淫片免费视频黄| 久久久999国产精品| 超碰地址久久| 欧美久久电影| 乱一区二区av| 久久久久久久穴| 色婷婷综合久久久| 一级特黄aaaaaa大片| 九九九久久国产免费| 蜜桃a∨噜噜一区二区三区| 亚洲 日韩 国产第一区| 国产一区二区三区在线观看免费视频| 一级黄色大片免费看| 日韩欧美成人网| 91国产免费视频| 午夜精品久久久久久久男人的天堂 | 91国产高清在线| 91麻豆精品国产91久久久平台 | 亚洲综合欧美在线| 亚洲自拍偷拍麻豆| 日韩免费av网站| 欧美劲爆第一页| 久久在线视频| 亚洲不卡中文字幕无码| 国产精品高潮呻吟久久| 久久久久久久久久免费视频 | 欧美自拍偷拍第一页| 国产精品视频久久久久| 亚洲区欧美区| 天天操天天干天天做|