Вход

Просмотр полной версии : Обрезка длинного текста


CJRoman
19.10.2009, 14:44
Привет. Подскажите пожалуйста, вот есть допустим очень длинная строчка. И надо, чтобы она обрезалась на 22 символе (при условии, что в строчке нет пробелов). Как это сделать?:help:

Kolyaj
19.10.2009, 14:55
http://javascript.ru/String/substr

Riim
19.10.2009, 15:02
На 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-е у меня нет, но думаю переделать не сложно.

JSprog
19.10.2009, 15:18
<script>
var sI="01234567890123456789012345678901234567890123456789";
function fO(str){
return str.slice(0,12)
}
alert(fO(sI));
</script>

Riim
19.10.2009, 15:28
Kolyaj, JSprog, читайте внимательней:
при условии, что в строчке нет пробелов

JSprog
19.10.2009, 15:31
А если есть то не обрезать? Или обрезать до блежайшего пробела?

Riim
19.10.2009, 15:40
А если есть то не обрезать? Или обрезать до блежайшего пробела?
скорей всего нужно просто вместить текст в определенную ширину, т. е. нужно обрезать, если есть достаточно длинный кусок без пробельных символов (браузер переносить не будет).

Kolyaj
19.10.2009, 15:41
читайте внимательней:
Там ничего конкретного нет, чтобы читать.

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

Мне бы ваши проблемы=(

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

JSprog
19.10.2009, 17:06
Вот тут гляньте (http://javascript.ru/php)