Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.08.2012, 12:32
Кандидат Javascript-наук
Отправить личное сообщение для mitiya Посмотреть профиль Найти все сообщения от mitiya
 
Регистрация: 13.01.2011
Сообщений: 114

как получить substr в обратную сторону ?
у меня есть текст и мне нужно получить его кусок , но я знаю позицию конца куска и его размер. как бы мне его получить.

вот типа такого

text = '123456789';

alert(text.substr(4, 3));

чтоб вывод был не 567 , а 345 .
Ответить с цитированием
  #2 (permalink)  
Старый 02.08.2012, 12:41
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

http://javascript.ru/String/slice
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #3 (permalink)  
Старый 02.08.2012, 12:42
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

text.substr(4-3, 3)
=)

Сообщение от nerv_ Посмотреть сообщение
http://javascript.ru/String/slice
Я тоже об этом сначала подумал, но это не то, что опу надо, прочитайте пост внимательнее.)
__________________
29375, 35
Ответить с цитированием
  #4 (permalink)  
Старый 02.08.2012, 12:45
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

поиск по форуму работает и гугл тоже
Практика: Перевернуть строку.

Да , потом вчитался в то что он хочет, хоть слова бы правильные использовал
-получить участок строки , но уж точно не получить в обратную сторону
Сообщение от mitiya
но я знаю позицию конца куска и его размер.
-судя по всему нет))

Последний раз редактировалось dmitriymar, 02.08.2012 в 12:52.
Ответить с цитированием
  #5 (permalink)  
Старый 02.08.2012, 14:11
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Получаем подстроку предшествующую данной (той же длины) ,
Первый символ искомой подстроки и последний текущей, входят в обе последовательности
<script type="text/javascript">
text = '123456789';

function PreSubStr(text,st0,Sublen){

   alert('Исходная : \n\n'+text.substr(st0, Sublen));
   var start = 1 + st0 - Sublen; 
   if(start < 1-Sublen) return false;
   if(start < 0)   return text.substr(0, 1 + st0 )
   return text.substr(start,Sublen);

} alert('Искомое: \n\n'+PreSubStr(text,4,3))


</script>


<script type="text/javascript">
text = '123456789';

function PreSubStr(text,st0,Sublen){

   alert('Исходная : \n\n'+text.substr(st0, Sublen));
   var start = 1 + st0 - Sublen; 
   if(start < 1-Sublen) return false;
   if(start < 0)  return text.substr(0, 1 + st0 );
   return text.substr(start,Sublen);

} alert('Искомое: \n\n'+PreSubStr(text,1,3))


</script>

Последний раз редактировалось Deff, 02.08.2012 в 15:58.
Ответить с цитированием
  #6 (permalink)  
Старый 02.08.2012, 14:49
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Лол, получается я тоже его не понял.=)
Ну тогда так(зачем лишний раз вычислять длину?):
String.prototype.rsubstr = function( pos , len){
    return this.slice(-pos - len, -pos)
} 
text = '123456789';
alert(text.substr(4, 3));
alert(text.rsubstr(4,3))
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 02.08.2012, 14:56
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Aetae,
Да мну собственно максимум усилий на формулировку - код правил - как удалось выразить мысля

Последний раз редактировалось Deff, 03.08.2012 в 00:47.
Ответить с цитированием
  #8 (permalink)  
Старый 02.08.2012, 15:06
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Зачем поправиль, слющай, а?
Был же рабочий вариант, а сейчас просто подоогнанный под задачу:
text = '123456789';
function PreSubStr(text,st0,Sublen){
 
   var start = 1 + st0 - Sublen;
   if(start < 0) return false;
   return text.substr(start,Sublen);
 
} 
alert('Должно быть: 567 \n\nРезультат: '+PreSubStr(text,2,3))
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 02.08.2012, 15:09
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Хм...
Тогда имхо моя формулировка не верна ?

Прост если подстрока к началу ближе её длины - то полного(а иногда и частичного результата - не вернуть) поставил false
====================================
Исправил возврат, если в наличии хоть кусок подстроки от начала

Последний раз редактировалось Deff, 02.08.2012 в 15:22.
Ответить с цитированием
  #10 (permalink)  
Старый 02.08.2012, 16:04
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

а чем substring не угодил? у него же параметры
string.substring(from, to)
в отличии от:
string.substr(from, length)

то есть простое:
var text = '123456789';
var startAt = 4; // откуда начать
var count = 3; // скока вырезать
alert(text.substring( startAt + 1, startAt - count + 1 ));
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить список элементов в localStorage? Бобр Общие вопросы Javascript 8 17.09.2013 14:32
Как из строки содержащей namespace получить ссылку на объект? wwwboy Общие вопросы Javascript 2 07.12.2011 09:22
Как получить значение TD zsaz jQuery 3 16.11.2011 16:00
как получить загружений урл iframe или frame NOCaut Events/DOM/Window 0 15.11.2011 14:51
Раскрывающееся меню, как переставить на другую сторону? Resager Events/DOM/Window 8 22.08.2008 21:56