2011-12-02 57 views
0

孩子,我有这些字符串这是文件和文件夹的地址的:的Javascript说,如果一个文件夹是另一个

  1. ../../../folder1/sub1/sub12/
  2. .. /../../folder1/
  3. ../../../another-folder/

我想用JavaScript来对它们进行比较 - possibily jQuery的 - 看看是否例如串1有一部分,例如字符串2,但更多的是说,字符串1是字符串2的孩子。

我该怎么做?

回答

0

如果你的字符串,也包括含有..不仅在一开始我会建议检查是否.indexOf回报0,而不是任何不-1绝对路径或路径。

它可以帮助像例如。

var path1 = "/rootFolder/"; 
var path2 = "../folder/rootFolder/"; 

if (path2.indexOf(path1) === 0) { 
    console.log("You want this"); // won't get executed => good 
} 

if (path2.indexOf(path1) !=-1) { 
    console.log("You don't want this"); // will get executed => bad 
} 
+0

请问你能举一个indexof返回0的例子吗? –

+0

@MatteoPagliazzi例如'console.log(“../ folder/1”.indexOf(“../ folder”));'。当字符串位于另一个字符串的开始位置时,开始索引为0,所以'indexOf'将重新调用'0'。 – kubetz

2

你可以尝试像下面

var path1 = "../../../folder1/"; 
var path2 = "../../../folder1/sub1/sub12/"; 

if (path2.indexOf(path1) != -1){ 
//path2 is a sub of path 1 
} 
+0

'indexOf'可以返回'0',这是虚假的 – kubetz

+0

@dzejkej好点。当它返回0时,我已更新代码 –

+0

? –

0

可以使用indexOf方法找到一个字符串是否是另一个字符串的一部分。

w3schools documentation

的的indexOf()方法返回在字符串中 指定值的第一次出现的位置。

如果搜索的值永远不会发生,则此方法返回-1。

var test = "../folder/subfolder1"; 
var test2 = "../folder"; 
if (test.indexOf(test2) !=-1) { 
    alert(test + " is a subfolder of " + test2); 
} 
0
if(string1.indexOf(string2) != -1){ 
//string2 is present in string1 
} 
else{ 
//string2 is not present in string1 
} 
相关问题