var the_url = prompt("What’s the URL?","");
var lead_slashes = the_url.indexOf("//");
var domain_start = lead_slashes + 2;
var without_resource = the_url.substring(domain_start, the_url.length);
var next_slash = without_resource.indexOf("/");
var domain = without_resource.substring(0, next_slash);
这段代码的意思是:如果你输入"http://www.programbbs.com/doc/";,则域名就是
"www.programbbs.com" .如果这个方法对你来说有些麻烦,我将向你介绍如何使用split
方法简化其执行过程.但是首先我们作一些分析.
基本的技巧是将第1个斜杠和第2个斜杠之间的内容分离出来:var the_url = prompt("What’s the URL?",""); //这行代码向用户询问一个URL.假设用户输入了"http://www.programbbs.com/doc/."; var lead_slashes = the_url.indexOf("//"); 这行代码确定第一个双斜杠的位置.在本例中lead_slashes的值是5,因为双斜杠的位
置从5开始.
你可能会想,通常的URL都是以http://开始,所以双斜杠的位置肯定是在5开始,为什
么还要加入indexOf这一段多余的代码呢?但是问题的关键在于你不知道用户在填入URL
时是否一定填入http:,他们也许会不小心多键入了一个空格,也许他们所键入的URL在
一个加密服务器上,其URL是"https://www.programbbs.com/"; .在编程你必须预料到种种
可能发生的问题.所以我们必须用indexOf方法确定双斜杠的确切的起始位置.
var domain_start = lead_slashes + 2;
这行代码用于计算该域名的第1个字母的起始位置.由于这里有一个双斜杠,所以域名
第1个字母的起始位置应该在双斜杠所在位置加2的位置.
var without_resource = the_url.substring(domain_start, the_string.length);
这段代码将域名起始位置往后的所有字符都提取出来.所以执行完这行代码后
without_resource是"www.programbbs.com/doc/."
var next_slash = without_resource.indexOf("/");
这行代码计算出该字符串中下一个斜杠的位置,而从该字符串起始位置到这个斜杠之间
的内容就是域名.在本例中下一个斜杠的位置是17。
var domain = without_resource.substring(0, next_slash);
最后一步是提取出该字符串起始位置到下一个斜杠之间的所有内容.在本例中使得域名
等同于"www.programbbs.com"。
这样做确实很麻烦,利用split方法则可以使该过程容易很多.>>
5、分割方法(splitting method) 你可以使用split方法用限位器来分割一系列的名称,然后将其放在一个数组中.例如:
var my_friends ="trixie,moxie,sven,guido,hermes";
var friend_array =my_friends.split(",");
for (loop=0; loop < friend_array.length;loop++){ document.writeln(friend_array[loop] + " is myfriend.<br>");}
这段代码将字符串my_friends分割成包含5个元素的数组.JavaScript可以为你自动建
立一个数组,所以你无需使用new Array().
将字符串分割成数组之后,我们使用了循环语句写出每一个名称.我们可以利用split方
法简化前面所讲到的域名提取:
var the_url = prompt("What’s the URL?","");
var first_split = the_url.split("//");
var without_resource = first_split;
var second_split = without_resource.split("/");
var domain = second_split[0];
这段代码简化了很多而且也更容易理解.我们来分析一些这段代码