Javascript сказать, если папка является дочерним по отношению к другому - PullRequest
0 голосов
/ 02 декабря 2011

У меня есть эти строки, которые являются адресами файлов и папок:

  1. .. / .. / .. / folder1 / sub1 / sub12 /
  2. .. / .. / .. / folder1 /
  3. .. / .. / .. / другой папка /

Я хочу сравнить их, используя javascript - возможно, jquery - чтобы увидеть, есть ли, например, в строке 1 часть, относящаяся к строке 2, но что-то еще, говорящее о том, что строка 1 является потомком строки 2.

Как я могу это сделать?

Ответы [ 4 ]

2 голосов
/ 02 декабря 2011

вы можете попробовать что-то вроде следующего

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

if (path2.indexOf(path1) != -1){
 //path2 is a sub of path 1
}
0 голосов
/ 02 декабря 2011

Если ваша строка может содержать также абсолютные пути или пути, содержащие .. не только в начале, я бы порекомендовал проверить, если .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 голосов
/ 02 декабря 2011
if(string1.indexOf(string2) != -1){
//string2 is present in string1
}
else{
//string2 is not present in string1
}
0 голосов
/ 02 декабря 2011

Вы можете использовать метод indexOf, чтобы определить, является ли одна строка частью другой строки.

Из документации школы :

Метод indexOf () возвращает позицию первого вхождения указанное значение в строке.

Этот метод возвращает -1, если значение для поиска никогда не встречается.

var test = "../folder/subfolder1";
var test2 = "../folder";
if (test.indexOf(test2) !=-1) {
     alert(test + " is a subfolder of " + test2);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...