Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.12.2014, 19:21
Аспирант
Отправить личное сообщение для TimohaP Посмотреть профиль Найти все сообщения от TimohaP
 
Регистрация: 30.06.2014
Сообщений: 56

Текст после последней точки
Тут скорее всего прийдется делать регулярками. Короч вот в чем дело: скрипту дается ссылка на файл, а он должен вернуть его расширение. Например:
image.jpg - вернет jpg
file:///d:/word.doc - вернет doc
jquery.min.js - вернет js
Ответить с цитированием
  #2 (permalink)  
Старый 04.12.2014, 19:36
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

var url = 'file:///d:/word.doc'.split('.');
alert(url[url.length-1]);
Ответить с цитированием
  #3 (permalink)  
Старый 04.12.2014, 19:37
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Safort,
Только если точек больше чем одна... неожиданно получишь иной результат. )
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #4 (permalink)  
Старый 04.12.2014, 19:40
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

devote,
точно?)
var url = 'file:///d:/w.o.r.d.doc'.split('.');
alert(url[url.length-1]);
Ответить с цитированием
  #5 (permalink)  
Старый 04.12.2014, 19:43
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Safort
точно?)
Удивительно. Похоже исправили метод. А то ранее он работал иначе. Разбивал лишь по первому найденному вхождению... либо я что то путаю.

Ну хорошо, а если вообще точек не будет?
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #6 (permalink)  
Старый 04.12.2014, 19:52
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

devote,
Цитата:
Ну хорошо, а если вообще точек не будет?
То это совсем другая задача. Тут нужно найти расширение(согласно примерам), мой код его находит, все радуются, а ты нет ;(
Ответить с цитированием
  #7 (permalink)  
Старый 04.12.2014, 19:57
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Safort, твой пример можно упростить
var ext = 'file:///d:/w.o.r.d.doc'.split('.').pop();
alert(ext);

Ну а так если все же нужен правильный функционал:
var url = 'file:///d:/w.o.r.d.doc';
var ext = (ext = url.split('.')).length > 1 ? ext.pop() : '';
alert(ext);

var url = 'file:///d:/doc';
var ext = (ext = url.split('.')).length > 1 ? ext.pop() : '';
alert(ext);
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #8 (permalink)  
Старый 04.12.2014, 20:07
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от devote
Ну а так если все же нужен правильный функционал:
Тогда уж проще регулярку
url.match(/\.([a-z]+)$/i)[1]
Ответить с цитированием
  #9 (permalink)  
Старый 04.12.2014, 20:09
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

devote,
за pop() спасибо, совсем забыл про него)
Ответить с цитированием
  #10 (permalink)  
Старый 04.12.2014, 20:25
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от krutoy
Тогда уж проще регулярку
регулярки кушают процессор/память компа... Ради разбиения строки по точкам, нет смысла заставлять интерпретатор создавать экземпляр регулярки, распарсивать регулярку, потом делать десяток проходов на поиск совпадения... Тогда когда split делает лишь один проход, не инициализирует парсер регулярки и т.д.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрет прокрутки при прокрутке DIV cyberblade Общие вопросы Javascript 13 10.01.2013 14:34
Плавное исчезание, якорь, обновление страницы Mikle1990 jQuery 4 19.10.2012 09:07
onload - не успевает? bookworm jQuery 12 13.01.2011 21:38
lastChild работает в IE, как тут быть? Puaris83 Firefox/Mozilla 4 17.04.2010 23:56
раскрывающийся текст sc2r2bey Элементы интерфейса 14 26.03.2010 12:40