因此,为了使这更容易,我提供某些变量的内容。
{{element url}} contains the string I want to compare (which is also an url)
{{url}} Only contains my current url path
{{ArrayObject}} contains a set similar to below
function() {
var data= [
{ url: "ReplaceThis",
elementUrl: "ReplaceThis",
category: "ReplaceThis",
action: "ReplaceThis",
label: "ReplaceThis",
value : "ReplaceThis"
}
];
return data;
}
我遇到问题的代码就是这个代码。
function() {
try{
var elementurl = "{{element url}}";
var url = "{{url}}";
var arrObj = {{ArrayObject}};
var check = false;
var ctr;
for (i = 0; i < arrObj .length; i++) {
if (elementurl.lastIndexOf(arrObj[i].elementUrl,0)===0 && url.lastIndexOf(arrObj[i].url, 0)===0) {
check = true;
ctr=i;
}
}
if (check == true){
return arrObj[ctr].action;
}else{
return {{event}};
}
}catch(err) {
return ; err.message;
}
}
正如您可以看到包含if
的行(elementurl.lastIndexOf(arrObj[i].elementUrl,0)===0 &&
我试图用这个替换
if (elementurl.IndexOf(arrObj[i].elementUrl) != -1 && url.lastIndexOf(arrObj[i].url, 0)===0) {
我尝试了几件事,基本上我想要做的是arrObj [i] .elementUrl将包含一个部分元素
例如,elementUrl可能包含oogle.com但elementurl包含google.com我如何调整我的链接以支持此功能,例如oogl会匹配google.com。
思想?
答案 0 :(得分:1)
说实话,我不明白你的问题,但如果你想根据模式匹配字符串,你可以使用正则表达式。
var url1 = 'http://www.google.com/something',
url2 = 'google.com';
if ((new RegExp(url2)).test(url1)){
// google.com exists in http://www.google.com/something
}
if ((new RegExp(url1)).test(url2)){
// this wont happen, http://www.google.com/something is no a part of google.com
}
正则表达式非常强大,你可以在google上搜索关于这个主题的大量教程。
答案 1 :(得分:0)
if (elementurl.lastIndexOf(arrObj[i].elementUrl,0)===0 && url.lastIndexOf(arrObj[i].url, 0)===0) {
到
if (elementurl.indexOf(arrObj[i].elementUrl) > -1 && url.lastIndexOf(arrObj[i].url, 0)===0) {
感谢所有回复。