Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.10.2009, 14:44
Новичок на форуме
Отправить личное сообщение для CJRoman Посмотреть профиль Найти все сообщения от CJRoman
 
Регистрация: 19.10.2009
Сообщений: 2

Обрезка длинного текста
Привет. Подскажите пожалуйста, вот есть допустим очень длинная строчка. И надо, чтобы она обрезалась на 22 символе (при условии, что в строчке нет пробелов). Как это сделать?
Ответить с цитированием
  #2 (permalink)  
Старый 19.10.2009, 14:55
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://javascript.ru/String/substr
Ответить с цитированием
  #3 (permalink)  
Старый 19.10.2009, 15:02
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

На C#

using System;
using System.Text;
using System.Text.RegularExpressions;

public class TextUtils
{
	// ....

	public static string Fading(string text)
	{
		if (text == null)
		{
			return text;
		}
		StringBuilder stringBuilder = new StringBuilder();
		for (int i = 0, length = text.Length; i < length; i++)
		{
			int opacity = (int)(100.0F / (length + 1) * (length - i));
			stringBuilder.Append("<span style=\"opacity: 0.");
			if (opacity < 10)
			{
				stringBuilder.Append("0").Append(opacity);
			}
			else
			{
				stringBuilder.Append(opacity % 10 == 0 ? opacity / 10 : opacity);
			}
			stringBuilder
				.Append("; filter: progid:DXImageTransform.Microsoft.Alpha(opacity=")
				.Append(opacity)
				.Append("); zoom: 1;\">")
				.Append(text[i])
				.Append("</span>");
		}
		return stringBuilder.ToString();
	}

	public static string InLength(string text, int length, int fadingLength)
	{
		if (text == null || text.Length <= length || length < 2 || length <= fadingLength || fadingLength < 1)
		{
			return text;
		}
		Match match = Regex.Match(text, "\\S{" + (length + 1) + "}", RegexOptions.Compiled);
		if (match.Success)
		{
			length += match.Index - fadingLength;
			return text.Substring(0, length) + Fading(text.Substring(length, fadingLength));
		}
		else
		{
			return text;
		}
	}

	// ....
}


Используется так:
Response.Write(TextUtils.InLength("01234567890123456789012345", 22, 10));


Варианта на javascript-е у меня нет, но думаю переделать не сложно.
Ответить с цитированием
  #4 (permalink)  
Старый 19.10.2009, 15:18
Аватар для JSprog
L
Отправить личное сообщение для JSprog Посмотреть профиль Найти все сообщения от JSprog
 
Регистрация: 16.08.2009
Сообщений: 416

<script>
var sI="01234567890123456789012345678901234567890123456789";
function fO(str){
return str.slice(0,12)
}
alert(fO(sI));
</script>
__________________
Лови позитив
Ответить с цитированием
  #5 (permalink)  
Старый 19.10.2009, 15:28
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Kolyaj, JSprog, читайте внимательней:
Сообщение от CJRoman
при условии, что в строчке нет пробелов
Ответить с цитированием
  #6 (permalink)  
Старый 19.10.2009, 15:31
Аватар для JSprog
L
Отправить личное сообщение для JSprog Посмотреть профиль Найти все сообщения от JSprog
 
Регистрация: 16.08.2009
Сообщений: 416

А если есть то не обрезать? Или обрезать до блежайшего пробела?
__________________
Лови позитив
Ответить с цитированием
  #7 (permalink)  
Старый 19.10.2009, 15:40
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от JSprog
А если есть то не обрезать? Или обрезать до блежайшего пробела?
скорей всего нужно просто вместить текст в определенную ширину, т. е. нужно обрезать, если есть достаточно длинный кусок без пробельных символов (браузер переносить не будет).
Ответить с цитированием
  #8 (permalink)  
Старый 19.10.2009, 15:41
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Riim
читайте внимательней:
Там ничего конкретного нет, чтобы читать.
Ответить с цитированием
  #9 (permalink)  
Старый 19.10.2009, 15:56
Аватар для JSprog
L
Отправить личное сообщение для JSprog Посмотреть профиль Найти все сообщения от JSprog
 
Регистрация: 16.08.2009
Сообщений: 416

<script>
var sI="01234567890123456789012345678901234567890123456789";
function fO(str){
sZ=str.slice(0,12);
if(sZ.indexOf(" ")==-1){
alert(sZ);
}
}
fO(sI);
</script>

Мне бы ваши проблемы=(
__________________
Лови позитив
Ответить с цитированием
  #10 (permalink)  
Старый 19.10.2009, 16:54
Новичок на форуме
Отправить личное сообщение для CJRoman Посмотреть профиль Найти все сообщения от CJRoman
 
Регистрация: 19.10.2009
Сообщений: 2

И еще ну ооочень тупой вопрос. Я просто наскоряк изучаю яву. Есть ли в яве функция, наподобие isset в РНР? Которая определяет, существует ли переменная?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Контроль ввода текста в форму Derack Events/DOM/Window 11 09.01.2011 01:07
WYSIWYG редактор текста HTML страницы на javascript Дмитри Чижиков Ваши сайты и скрипты 4 14.09.2009 17:05
Как сделать чтобы text() брал только текст родителя без текста вложенных контейнеров? Andrey32 jQuery 3 23.05.2009 01:33
Оборачивание текста в теги <b>, <i> и т.д. bizmak Элементы интерфейса 4 23.01.2009 05:01
Firefox: перехватить соббытие при перетаскивании текста no_alex Общие вопросы Javascript 9 21.08.2008 18:02