Просмотр полной версии : Обрезка длинного текста
Привет. Подскажите пожалуйста, вот есть допустим очень длинная строчка. И надо, чтобы она обрезалась на 22 символе (при условии, что в строчке нет пробелов). Как это сделать?:help:
http://javascript.ru/String/substr
На 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-е у меня нет, но думаю переделать не сложно.
<script>
var sI="01234567890123456789012345678901234567890123456789";
function fO(str){
return str.slice(0,12)
}
alert(fO(sI));
</script>
Kolyaj, JSprog, читайте внимательней:
при условии, что в строчке нет пробелов
А если есть то не обрезать? Или обрезать до блежайшего пробела?
А если есть то не обрезать? Или обрезать до блежайшего пробела?
скорей всего нужно просто вместить текст в определенную ширину, т. е. нужно обрезать, если есть достаточно длинный кусок без пробельных символов (браузер переносить не будет).
читайте внимательней:
Там ничего конкретного нет, чтобы читать.
<script>
var sI="01234567890123456789012345678901234567890123456789";
function fO(str){
sZ=str.slice(0,12);
if(sZ.indexOf(" ")==-1){
alert(sZ);
}
}
fO(sI);
</script>
Мне бы ваши проблемы=(
И еще ну ооочень тупой вопрос. Я просто наскоряк изучаю яву. Есть ли в яве функция, наподобие isset в РНР? Которая определяет, существует ли переменная?
Вот тут гляньте (http://javascript.ru/php)
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot