Javascript 返回url部分
如何返回u_c_页面中内容部分与模式匹配的第一位的url部分(不区分大小写)?如果找不到页面,则应返回空字符串 e、 g.用下面的例子Javascript 返回url部分,javascript,Javascript,如何返回u_c_页面中内容部分与模式匹配的第一位的url部分(不区分大小写)?如果找不到页面,则应返回空字符串 e、 g.用下面的例子 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 =
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 ""
这就是我到目前为止所做的。目前,它只过滤掉分隔符“|”,但我希望它检查任何符号(不使用正则表达式)
函数url1\u m1(u\u c\u页面,模式){
//我们创建一个数组来存储所有带有分隔符“|”的数组
//这是针对缺少分隔符“|”的无效数组的情况而做的
//如果我们在数组中找到分隔符“|”,我们还需要知道“|”在数组元素中的位置
var分隔符=[];
var SeparatorPos=[];
如果(模式){
//在u|c|u页面中循环查找分隔符“|”
//找到的变量用true值初始化
//如果在数组元素中找不到分隔符“|”,则将找到的变量设置为false
对于(var i=0;i=0){
found2=(u_c_pages[j]。子字符串(0,separatorpos[j]);
打破
}
}
返回(2)
}
}
否则{
返回(“”);
}
}
警报(url1_m1(pg,pt));
有一种非常简单的方法可以实现:
function returnData(arr, splitPattern) {
var result = []
for (x in arr) {
current = arr[x].split(splitPattern);
var url = current[1]; // www.cam.ac.uk
var alt = current[2]; // Cambridge University offers degree programmes and world class research.
result.push({
url: url,
alt: alt
})
}
return result
}
var arr = ["|www.cam.ac.uk|Cambridge University offers degree programmes and world class research.",
"|www.xyz.ac.uk|An great University"];
returnData(arr, "|")[0].url // www.cam.ac.uk
returnData(arr, "|")[0].alt // Cambridge University offers degree programmes and world class research.
returnData(arr, "|")[1].url // www.xyz.ac.uk!An great University
returnData(arr, "|")[1].alt // An great University
var anotherArr = ["!%www.cam.ac.uk!%Cambridge University offers degree programmes and world class research.",
"!%www.xyz.ac.uk!%An great University"];
returnData(anotherArr, "!%")[0].url // www.cam.ac.uk
returnData(anotherArr, "!%")[0].alt // Cambridge University offers degree programmes and world class research.
returnData(anotherArr, "!%")[1].url // www.xyz.ac.uk!An great University
returnData(anotherArr, "!%")[1].alt // An great University
为什么要避免正则表达式?对于正则表达式,它可以变成一行:只拆分“|”-使用其他符号如何?我已经编辑了我的答案,但现在我发现我遗漏了您需要的内容,请给我几分钟时间重写它谢谢迈克-函数看起来不错,但它可以采用
函数url1\u m1的形式吗(u_c_页面,图案)
?
function returnData(arr, splitPattern) {
var result = []
for (x in arr) {
current = arr[x].split(splitPattern);
var url = current[1]; // www.cam.ac.uk
var alt = current[2]; // Cambridge University offers degree programmes and world class research.
result.push({
url: url,
alt: alt
})
}
return result
}
var arr = ["|www.cam.ac.uk|Cambridge University offers degree programmes and world class research.",
"|www.xyz.ac.uk|An great University"];
returnData(arr, "|")[0].url // www.cam.ac.uk
returnData(arr, "|")[0].alt // Cambridge University offers degree programmes and world class research.
returnData(arr, "|")[1].url // www.xyz.ac.uk!An great University
returnData(arr, "|")[1].alt // An great University
var anotherArr = ["!%www.cam.ac.uk!%Cambridge University offers degree programmes and world class research.",
"!%www.xyz.ac.uk!%An great University"];
returnData(anotherArr, "!%")[0].url // www.cam.ac.uk
returnData(anotherArr, "!%")[0].alt // Cambridge University offers degree programmes and world class research.
returnData(anotherArr, "!%")[1].url // www.xyz.ac.uk!An great University
returnData(anotherArr, "!%")[1].alt // An great University