我正在尝试使用JS从数组中提取URL,但我的代码似乎没有返回任何内容。
非常感谢任何帮助!
var pages = [
"www.facebook.com|Facebook",
"www.twitter.com|Twitter",
"www.google.co.uk|Google"
];
function url1_m1(pages, pattern) {
var URL = '' // variable ready to accept URL
for (var i = 0; i < pages[i].length; i++) {
// for each character in the chosen page
if (pages[i].substr(i, 4) == "www.") {
// check to see if a URL is there
while (pages[i].substr(i, 1) != "|") {
// if so then lets assemble the URL up to the colon
URL = URL + pages[i].substr(i, 1);
i++;
}
}
}
return (URL);
// let the user know the result
}
alert(url1_m1(pages, "twitter")); // should return www.twitter.com
答案 0 :(得分:3)
在您的情况下,您可以使用此:
var page = "www.facebook.com|Facebook";
alert(page.match(/^[^|]+/)[0]);
您可以看到此here
这只是上面使用RegExp的例子。完整的代码是:
var pages = [
"www.facebook.com|Facebook",
"www.twitter.com|Twitter",
"www.google.co.uk|Google"
];
var parseUrl = function(url){
return url.match(/^(www\.[^|]+)+/)[0];
};
var getUrl = function(param){
param = param.toLowerCase();
var page = _(pages).detect(function(page){
return page.toLowerCase().search(param)+1 !== 0;
});
return parseUrl(page);
};
alert(getUrl('twitter'));
您可以对其进行测试here
在我的代码中,我使用了Underscore库。您可以使用标准for或while循环替换它以查找某个数组项。 当然,通过一些验证来改进我的代码 - 例如,对于未定义的值,或者如果数组中的值不正确或其他。
祝你好运!答案 1 :(得分:0)
我不确定你要做什么,但你可以使用split()函数
var pair = pages[i].split("|");
var url = pair[0], title=pair[1];