6.5 url函数库
名称:url
说明:这个函数库包含了处理绝对的url与相对url的程序,一般的url语法如下:://:/;?#
isvalid
程序:isvalid(url)
说明:如果给予的url值是正确的url语法,则回传ture,否则回传false
绝对与相关url都能支持
相关url不会被转成绝对url
参数:url=字符串
回传值:布尔值或invalid
例外状况:无
范例:var a=url.isvalid
("http://www.acme.com/script#func()"); //a=ture
var b=url.isvalid("../common#test()"); //b=ture
var c=url.isvalid
("experimental?://www.acme.com/pub"); //c=false
getscheme
程序:getscheme(url)
说明:回传给予url的调用方式scheme
绝对与相关url都能支持
相关url不会被转成绝对url
参数:url=字符串
回传值:字符串或invalid
例外状况:如果遇到不正确的url语法,则回传invalid
范例:var a=url.gescheme("http://w.a.com"); //a="http"
var b=url.getsceme("w.a.com"); //b=""
gethost
程序:gethost(url)
说明:回传给予url的主机
绝对与相关url都能支持
相关url不会被转成绝对url
参数:url=字符串
回传值:字符串或invalid
例外状况:如果遇到不正确的url语法,则回传invalid
范例:var a=url.gehost("http://www.acom.com/pub"); //a="www.acm.com"
var b=url.gethost("path#fray"); //b=""
getport
程序:getport(url)
说明:回传给予url的端口(port)
如果port没有制定,则回传空字符串
绝对与相关url都能支持
相关url不会被转成绝对url
参数:url=字符串
回传值:字符串或invalid
例外状况:如果遇到不正确的url语法,则回传invalid
范例:var a=url.getport("http://www.acom.80/path"); //a="80"
var b=url.getport("http://www.acom./path"); //b=""
getpath
程序:getpath(url)
说明:回传给予url的路径(path)
参数:url=字符串
回传值:字符串或invalid
例外状况:如果遇到不正确的url语法,则回传invalid
范例:var a=url.getpath("http://w.a.com/home/sub/comp#frag"); //a="/home/sub/comp"
var b=url.getpath("../home/sub/comp#frag"); //b="../home/sub/comp"
getparameters
程序:getparameters(url)
说明:回传给予url的路径(parameter)
如果没有指定参数,则回传空字符串
绝对与相关url都能支持
相关url不会被转成绝对url
参数:url=字符串
回传值:字符串或invalid
例外状况:如果遇到不正确的url语法,则回传invalid
范例:var a=url.getparameters("http://w.a.c/scr;3;2?x=1&y=3"); //a="3;2"
var b=url.getparameters("../scr3;2?x=1&y=3"); //b="../home/sub/comp"
getquery
程序:getquery(url)
说明:回传给予url的询问部分(query)
如果没有指定的询问部分,则回传空字符串
绝对与相关url都能支持
相关url不会被转成绝对url
参数:url=字符串
回传值:字符串或invalid
例外状况:如果遇到不正确的url语法,则回传invalid
范例:var a=url.getparameters("http://w.a.c/scr;3;2?x=1&y=3"); //a="3;2"
getfragment
程序:getfragment(url)
说明:回传给予url的片断(fragment)
如果没有指定片断,则回传空字符串
绝对与相关url都能支持
相关url不会被转成绝对url
参数:url=字符串
回传值:字符串或invalid
例外状况:如果遇到不正确的url语法,则回传invalid
范例:var a=url.getfragment("http://www.acom.com/cont#fray"); //a="fray"
getbase
程序:getbase()
说明:回传次wml script程序的绝对url(没有fragment的部分)。
参数:无
回传值:字符串
例外状况:无
范例:var a=url.getbase(); //result;
"http://www.acme.com/test.scr"
getreferer
程序:getreferer()
说明:回传调用目前程序资源的最小相关url(与目前程序的基本url的相关)
内部程序调用并不会改变参照者
如果目前的程序并没有参照者,则回传空字符串
参数:无
回传值:字符串
例外状况:无
范例:var base=url.getbase(); //base
="http://www.acme.com/current.scr"
var prferer=url.getreferer(); //referer="app.wml"
resolve
程序:resolve(baseurl,embeddedurl)
说明:根据rfc2396的文件,由给予的基本base与插入embeddedurl回传绝对url
参数:baseurl=字符串
embeddedurl=字符串
回传值:字符串或invalid
例外状况:如果遇到不正确的url语法,则回传invalid
范例:var a=url.resolve(http://www.foo.com/,"foo.vcf"); //a="http://www.foo.com/foo.vcf"
escapestring
程序:escapestring(string)
说明:这个程序会将所给与string字符串之中的特殊字符使用十六进制逃脱序列来替代(你必须使用量为逃脱序列格式%xx),这些逃脱字符如下:
控制字符(control characters):us-ascii编码的字符00-1f与7f
空格(space):us-ascii码编字符20十六进制
保留字(reserved):";"|"/"|"?"|":"|"@"|"="|"+"|"$"|","
unwise:"{"|"}"|"|"|"\"|""|"["|"]"|"`"
delimes:"<"|">"|"#"|"%"|"<>"
给予的字符串如果已经是使用逃脱自负,则不会执行url解析
参数:string=字符串
回传值:字符串或invalid
例外状况:如果字符串string含有非us-ascii的字符,则回传invalid
范例:var a=url.escapestring
("http://w.a.c/dck?x=u007ef#crd");
// a="http%3a2f%2fw.a.c%2fdck%3fx%3def%23crd"
unescapestring
程序:unescapestring(string)
说明:这个程序会将所给与string字符串之中每个可能是由url.escapestring() 程序所产生的逃脱序列使用它所代表的字符加以替代。
参数:string=字符串
回传值:字符串或invalid
例外状况:如果字符串string含有非us-ascii的字符,则回传invalid
范例:var a="http%3a2f%2fw.a.c%2fdck%3fx%3def%23crd";
var b=url.unescapestring(a);