如何返回u_c_pages中第一位的url部分,其內容部分匹配模式(不區分大小寫)?如果沒有找到頁面,則應返回空字符串。返回url部分
例如舉例如下
var pg = [ "|www.cam.ac.uk|Cambridge University offers degree programmes and world class research." , "!www.xyz.ac.uk!An great University" , "%www%Yet another University" ]
var pt = "alt";
url1(pages,"ALT") returns "www.xyz.ac.uk"
url1(pages,"xyz") returns ""
這就是我迄今爲止所做的。目前它只篩選出分隔符「|」但我想它來檢查任何符號(而不是訴諸正則表達式)...
function url1_m1(u_c_pages, pattern) {
// we create an array to store all the arrays that have the seperator "|"
// this has been done for situations in which there are invalid arrays lacking the seperator "|"
// if we find the seperator "|" within an array we also need to know about the position of "|" in the array element
var seperator = [];
var seperatorPos = [];
if (pattern) {
// looping through the u_c_pages to find occurences of seperator "|"
// the found variable is initialised with a value of true
// if we do not find the seperator "|" in an array element then we set the found variable to false
for (var i = 0; i < u_c_pages.length; i++) {
var found = true;
if ((u_c_pages[i].indexOf("|")) < 0) {
found = false;
}
// whereas if we do find a seperator "|" in an array element
// we create a new array element in seperator containing the page index
// we create a new array element containing the position of the seperator "|"
else {
seperator[seperator.length] = i;
seperatorPos[seperatorPos.length] = (u_c_pages[i].indexOf("|"));
}
}
// if no arrays with the seperator "|" have been found then we end the program
if (seperator.length == 0) {
return ("");
}
// otherwise we initialise variable found2
// we loop through the pages with the seperator "|" as we have stored the index of all the pages in array seperator
// using the stored index of in array seperator we check the content (after the seperator) for the pattern
// we also jump the seperator "|" so it is not returned as one of the results
else var found2 = ""; {
for (var j = 0; j < seperator.length; j++)
// if the the pattern has been found then we extract the url (before the seperator)
// break the loop once it has been found
// return URL to user
{
if (u_c_pages[seperator[j]].substring(seperatorPos[j] + 1, u_c_pages[j].length).toLowerCase().indexOf(pattern.toLowerCase()) >= 0) {
found2 = (u_c_pages[j].substring(0, seperatorPos[j]));
break;
}
}
return (found2)
}
}
else {
return ("");
}
}
alert(url1_m1(pg, pt));
你爲什麼要避免正則表達式? –
使用正則表達式,這可以成爲一個單線程:http://regexpal.com/?flags=g®ex=%5E%28.%29%28.%2A%3F%29%5C1&input=%7Cfoo%7Cbar –