Как сравнить, находится ли путь в той же папке или нет - PullRequest
0 голосов
/ 02 ноября 2019

я хочу сравнить путь ввода погоды в той же папке или нет

Вопрос: путь ввода в той же папке или нет?

скажем, мой текущий путьis f://learning/java

теперь я нахожусь в папке с именем java, которая path напрямую принадлежит java моя функция должна вернуть true.

предположим, у меня есть много путей:

  1. f://learning/java/first/ true
  2. f://learning/java/1.java true
  3. f://learning/java/machine/learning false
  4. f://learning/java/a/b false
  5. f://learning/java/ true
  6. f://learning/f false

у меня есть пробовал как показано ниже:

function pathDirectlyBelongsToSameFoler(currentPath, incomingPath) {
  if (currentPath == incomingPath) return true;
  // other comparision code i don't know
}

var currentPath = 'f://learning/java';

console.log(pathDirectlyBelongsToSameFoler(currentPath, 'f://learning/java/first'));
console.log(pathDirectlyBelongsToSameFoler(currentPath, 'f://learning/java/1.java'));
console.log(pathDirectlyBelongsToSameFoler(currentPath, 'f://learning/java/machine/learning'));
console.log(pathDirectlyBelongsToSameFoler(currentPath, 'f://learning/java/a/b'));
console.log(pathDirectlyBelongsToSameFoler(currentPath, 'f://learning/java/'));
console.log(pathDirectlyBelongsToSameFoler(currentPath, 'f://learning/f'));

1 Ответ

1 голос
/ 02 ноября 2019

Вы можете построить динамическое регулярное выражение и проверить входящий путь

function pathTester(currentPath, incomingPath) {
if(incomingPath == currentPath) return true
  currentPath += currentPath.endsWith('/') ? '' : '/'
  let reg = new RegExp(String.raw `^${currentPath}[^\/]*\/?$`)
  return reg.test(incomingPath)
}

var currentPath = 'f://learning/java';

console.log(pathTester(currentPath, 'f://learning/java/first'));
console.log(pathTester(currentPath, 'f://learning/java/1.java'));
console.log(pathTester(currentPath, 'f://learning/java/machine/learning'));
console.log(pathTester(currentPath, 'f://learning/java/a/b'));
console.log(pathTester(currentPath, 'f://learning/java/'));
console.log(pathTester(currentPath, 'f://learning/f'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...