в узле, как удалить подстроку, которая заканчивается некоторыми определенными символами - PullRequest
0 голосов
/ 09 мая 2018

В переменной sourceConfigPath он имеет путь, например "conf/test.json", или может иметь другой слой, например, "test/conf/test.json". Я хочу получить только часть "test.json".

Я попробовал функцию indexOf, чтобы получить позицию, а затем использовал функцию slice или substr, чтобы получить часть 'test.json'. Но он всегда возвращает 0, когда indexOf.

Может кто-нибудь помочь, пожалуйста, здесь? большое спасибо!

var position = sourceConfigPath.indexOf('conf');
var newsourceConfigPath = sourceConfigPath.slice(position+4);

Или есть ли лучший способ сделать это? Большое спасибо!

1 Ответ

0 голосов
/ 09 мая 2018

Лучше всего использовать path.basename

Методы path.basename () возвращают последнюю часть пути, похож на базовое имя Unix

const path = require('path');
const newSource = path.basename('conf/test.json'); // test.json

Вы можете использовать lastIndexOf вместо indexOf, но рекомендуется path.basename.

const filepath = '/path/to/file.json';

const position = filepath.lastIndexOf('/') + 1;  // +1 is to remove '/'

console.log(filepath.substr(position));
...