Javascript.RU

PHP-функция: basename

Javascript:

function basename(path, suffix) {	// Returns filename component of path
	// 
	// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +   improved by: Ash Searle (http://hexmen.com/blog/)
	// +   improved by: Lincoln Ramsay
	// +   improved by: djmix

	var b = path.replace(/^.*[\/\\]/g, '');
	if (typeof(suffix) == 'string' && b.substr(b.length-suffix.length) == suffix) {
		b = b.substr(0, b.length-suffix.length);
	}
	return b;
}

Примеры:

basename('/www/site/home.htm', '.htm');
'home'


Автор: Виктор (гость) (не зарегистрирован), дата: 23 апреля, 2011 - 21:55
#permalink

Предлагаю следующею функцию, если Ваша задача не состоит в том чтобы удалить суфикс и/или путь содержит только слеш (/):

function basename( path )
{
  parts = path.split( '/' );
  return parts[parts.length-1];
}

Автор: Гость (не зарегистрирован), дата: 22 февраля, 2013 - 14:57
#permalink

Лишние переменные не нужны там в вашем случае...

function basename(path,prefix) {
path=path.split(prefix);
return path[path.length-1];
}


Автор: andrewinc, дата: 28 февраля, 2020 - 09:34
#permalink

Совмещённый вариант учитывающий виндовые слэши и суфикс (расширение):

function basename(path, suffix){
  let p = path.split( /[\/\\]/ ), name = p[p.length-1];
  return ('string'!=typeof suffix) ? name :
    name.replace(new RegExp(suffix.replace('.', '\\.')+'$'),'');
}

Примеры:
basename('C:\\Program Files\\nodejs\\node.exe'); // 'node.exe'
basename('C:\\Program Files\\nodejs\\node.exe', '.exe'); // 'node'
basename('/etc/fstab'); // 'fstab'
basename('.htaccess'); // '.htaccess'
basename('file.txt','.txt'); // 'file'
basename('file.txt','.t'); // 'file.txt'


Автор: Гость (не зарегистрирован), дата: 12 апреля, 2022 - 19:32
#permalink

Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
2 + 0 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum