2011-12-02 61 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 
} 
相關問題