Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 15
1

Аналог xTrim в ASP?

27.01.2011, 12:56. Показов 1610. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, All.

Уж простите начинающего за глупый вопрос. Рисую табличку с кнопочками для редактирования. Имею незазорное желание к кнопочкам подвесить хинты с названиями (для каждой строки своё).
Делаю это так:

Код
  lcName = rsCity('name').Value;
  Response.Write('<td ALIGN=CENTER>'+
		 '<a href='edit_city.asp&id='+rsCity('id').Value+
                 ''><img src='IMG/edit16.gif' ALT='Изменить '+lcName+
                 '' align='absmiddle' border=0></a>'+
	         '</td>');
Все работает, но некрасиво. В lcName попадают значения из базы с лишними пробелами. Никаких xTrim функций в ASP я не нашел.
Попытка 'запхапь' в lcName JS-код, который делал бы 'Trim(''+lcName+'')' успехов не принесла.
Как решается такая ерунда?

С уважением, Евгений.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2011, 12:56
Ответы с готовыми решениями:

Аналог следующего кода ASP в ASP.NET
Народ, есть какой нибудь аналог этого кода ASP в ASP.NET, (как с помощью DataSet изобразить тоже...

Аналог ASP конструкции "<!--#include... " в ASP.NET
Подскажите пожалуйста, какой аналог ASP конструкции &lt;!--#include file='file.asp'--&gt; в ASP.NETe В...

Существует ли в ASP аналог EVAL?
Привет All !! Может быть я повторюсь и такой вопрос уже обсуждался на форуме, но вы уж меня...

Аналог PictureBox в ASP.NET
Здравствуйте! подскажите пожалуйста как сделать аналогично только с использованием ImageButton в...

12
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
27.01.2011, 13:37 2
Функции xTrim есть в VBScript, а в JavaScript действительно отсутствуют. Проблема решается простой функцией:
Код
function trim(s)
{
    return s.replace(/^s*(.+?)s*$/, '$1');
}
Переменная s должна быть строковым объектом.

Решение более соответсвующее идеологии JavaScript выглядит так:
Код
String.prototype.trim = function() {
    return this.replace(/^s*(.+?)s*$/, '$1');
}
В этом случае вызов функции trim выглядит так как будто это встроенная функция и ее можно вызывать по цепочке с другими функцями.
Код
Response.Write(' xyz  ПРВОР '.trim().replace(/s/g, '_'));
0
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 15
27.01.2011, 14:41  [ТС] 3
Большое спасибо.

Работать то, оно работает.
Только, если вас не затруднит, ткните меня носом, где почитать о магическом сочетании символов ...(/^s*(.+?)s*$/, '$1') в параметрах replace. Для меня - это 'пляшущие человечки' :-(.
И еще один абстрактный вопрос. Часто ли встречаются подобные преимущества VBScript над JScript? А то, JS мне ближе C-подобным синтаксисом (в котором имею приличный опыт), а VB - непривычен, но это его единственный субъективный недостаток (для меня). Может быть имеет смысл чуть-чуть напрячься и сразу все делать по-уму (на VBScript). В доке я ничего, кроме туманных намёков (на то что для клиентских сценариев родной JS, а для серверных - VB) по этому поводу не нашел.
0
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
27.01.2011, 15:08 4
> где почитать о магическом сочетании символов
> (/^s*(.+?)s*$/, '$1') в параметрах replace.
Это называется регулярное выражение (regular expression).
Используется для сопоставления всей строки или ее части с нужным шаблоном. Очень мощная и полезная возможность. Описание есть в MSDN:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/js56reconIntroductionToRegularExpressions.asp

Смысл второго аргумента ('$1') описан в документации метода replace
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/js56jsmthreplace.asp

> Часто ли встречаются подобные преимущества VBScript над JScript?
> А то, JS мне ближе C-подобным синтаксисом (в котором имею
> приличный опыт), а VB - непривычен, но это его единственный
> субъективный недостаток (для меня).
Не часто, но тем не менее встречается.
Например, в JavaScript труднее проверить был ли передан параметр в QueryString или Form. Совсем недавно искали решение для этого:
http://relib.com/forums/topic.asp?id=843201

Отличается оработка n-мерных массивов возвращаемых из COM объектов. В частности метод GetRows объекта ADODB.Recordset.

> Может быть имеет смысл чуть-чуть напрячься и сразу все делать
> по-уму (на VBScript).
Я бы не назвал это 'по уму'. Сам являюсь большим поклонником JavaScript, а не VBScript. Но вот из-за таких мелочей предпочитаю в проектах на ASP использовать именно VBScript. В конце концов ничего сложного в нем нет.
К счастью в ASP.NET такой 'дискриминации' уже нет и можно спокойно писать на C#
0
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 15
27.01.2011, 17:30  [ТС] 5
Спасибо еще раз.

С регулярными выражениями !!!почти!!! разобрался.

>> function trim(s){return s.replace(/^s*(.+?)s*$/, '$1');}

Imho,
function trim(s){return s.replace(/(^s*)|(s*$)/g, '');}
проще и, вроде, работает.

С уважением, Евгений.
0
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 15
27.01.2011, 17:37  [ТС] 6
В догонку.

А http://relib.com/forums/topic.asp?id=843201 - это я и был.

Так кстати и остались костыли:
var cParam = new String();
cParam += Request.QueryString('cFirstChar_');
if (cParam != 'undefined'){
...

А
if (typeof(Request.QueryString('cFirstChar_')) != 'undefined'){
....
жить отказывается.

Еще раз спасибо.
0
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
27.01.2011, 17:40 7
> А http://relib.com/forums/topic.asp?id=843201 - это я и был.
Я это понял только после отправки сообщения

К сожалению не знаю чем тут помочь. Сам как-то мучался, но толкового решения так и не получил.
0
2 / 2 / 1
Регистрация: 04.12.2010
Сообщений: 216
27.01.2011, 21:28 8
А зачем такое сложное регулярное выражение?
Так не проще:

s = s.replace(/s+/g,''); ???

А можно и подстраховаться на случай, если s not defined:

s = string(s).replace(/s+/g,'');

P.S. Лучше всего про regular expressions читать а в книгах по Perl. Рекомендую 'Изучаем Perl' ('Learning Perl')
0
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
30.01.2011, 09:53 9
> А зачем такое сложное регулярное выражение?
> Так не проще:
> s = s.replace(/s+/g,''); ???
Потому что нам нужно удалить только пробелы в начале и конце строки. А твой пример удалит все пробелы.
0
2 / 2 / 1
Регистрация: 04.12.2010
Сообщений: 216
30.01.2011, 16:18 10
Да, точно, забыл об этом. Но все равно, я сторонник простоты:

s = string(s).replace(/^s+/,''); s=s.replace(/s+$/,'');
0
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
30.01.2011, 16:31 11
Простота понятие относительное.
0
2 / 2 / 1
Регистрация: 04.12.2010
Сообщений: 216
30.01.2011, 16:43 12
Согласен. Тут два вместо одного, так что простота относиткльная полочается
0
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 15
30.01.2011, 18:31  [ТС] 13
А так всего один:

s.replace(/(^s*)|(s*$)/g, '')
0
30.01.2011, 18:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.01.2011, 18:31
Помогаю со студенческими работами здесь

Аналог элемента textarea в asp.net
Добрый день! Существует ли в asp.net элемент управления аналогичный textarea? Спасибо

Есть ли в ASP аналог Access функции Nz()?
Vseh s 2003!!! U menya vopros - est' li v ASP analog Access function Nz()? To est', esli v DB v...

Подскажите аналог метода Get из PHP в ASP.NET
Не могу найти найти аналог метода get в дое нете, есть ли такой? Если есть то какой!?!? Или здесь...

Аналог php-функции echo на ASP.NET
Товарищи программисты, нужна ваша помощь! Стоит следующая задача: На входе пустой Page, а на выходе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru