Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 31.01.2013, 11:06
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

ast_ross,
1. Упрощайте, а не усложняйте задачу, -Очевидно, если К - большая - она в начале предложеия и тогда имеют значения лишь прилежащие теги.
2. Приводите все варианты*никто не будет додумывать - экстраполировать
3. Задача тянет уже на Работу
4. Есть css для первой буквы в теге http://htmlbook.ru/css/first-letter

Последний раз редактировалось Deff, 31.01.2013 в 11:08.
Ответить с цитированием
  #32 (permalink)  
Старый 31.01.2013, 11:19
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от Deff
Задача тянет уже на Работу
Это точно...
Ответить с цитированием
  #33 (permalink)  
Старый 31.01.2013, 11:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

ast_ross,
Вариант...
function transF(str){
return str.replace(/^(<.*?>)?(Ко|(<(.*?)>)К(<\/\4>)о)/,'$1<span class="highlight">$2</span>');
}
alert(transF('<p><p><p><b>Короткометражки</b> с ориентацией на классику немой комедии.</p>'));
alert(transF('<p><p><b>К</b>ороткометражки с ориентацией на классику немой комедии.</p>'));
alert(transF('Короткометражки с ориентацией на классику немой комедии.'));
alert(transF('<p>Новые <b>короткометражки</b> с ориентацией на классику немой комедии.</p>'));
Ответить с цитированием
  #34 (permalink)  
Старый 31.01.2013, 11:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Deff,
Непонял что тут не корректно?
<p><p><span class="highlight"><b>К</b>о</span>роткометражки с ориентацией на классику немой комедии.</p>
Ответить с цитированием
  #35 (permalink)  
Старый 31.01.2013, 11:41
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

рони,
Cоррь ....Заглючило воспроизведение в мозгах
Ответить с цитированием
  #36 (permalink)  
Старый 01.02.2013, 00:03
Новичок на форуме
Отправить личное сообщение для olegsuv Посмотреть профиль Найти все сообщения от olegsuv
 
Регистрация: 04.10.2012
Сообщений: 5

Помогите пожалуйста с регуляркой, я с ними работаю не очень, писалось очень давно и не мной.

В общем суть:
jQuery(this).html(Tmp.replace(/\[hide=([^\[]+)\]/ig, '<div class="HiddenBlock"><div class="NeededPoints" style="display: block; ">'+newHide+'</div><div class="HiddenText">').replace(/\[\/hide\]/ig, '</div></div>'));

Ищет в тексте связку [hide=50]sometext[/hide] и меняет его тегами.
Нужно искать и ББ-код hide и ahide.

В виде костыля можно было сделать так:
jQuery(this).html(Tmp.replace(/\[hide=([^\[]+)\]/ig, '<div class="HiddenBlock"><div class="NeededPoints" style="display: block; ">'+newHide+'</div><div class="HiddenText">').replace(/\[\/hide\]/ig, '</div></div>'));
jQuery(this).html(Tmp.replace(/\[ahide=([^\[]+)\]/ig, '<div class="HiddenBlock"><div class="NeededPoints" style="display: block; ">'+newHide+'</div><div class="HiddenText">').replace(/\[\/ahide\]/ig, '</div></div>'));

но в тексте скрипта очень часто используется такая регулярка и хочется цивилизованного способа, знаю что как-то через скобки и символ '|' делается, но экспериментировать на живом сайте боюсь.
Ответить с цитированием
  #37 (permalink)  
Старый 01.02.2013, 00:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

olegsuv,
jQuery(this).html(Tmp.replace(/\[a?hide=([^\[]+)\]/ig, '<div class="HiddenBlock"><div class="NeededPoints" style="display: block; ">'+newHide+'</div><div class="HiddenText">').replace(/\[\/a?hide\]/ig, '</div></div>'));
Ответить с цитированием
  #38 (permalink)  
Старый 01.02.2013, 00:23
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

olegsuv,
1. Лучше преобразование строк делать в виде функции на входе строка, на выходе преобразованная строка.
2. Выложите пару примеров входных строк, поскольку надо учитывать возможные внутри лежащие BB и простые теги...
Ответить с цитированием
  #39 (permalink)  
Старый 01.02.2013, 00:39
Новичок на форуме
Отправить личное сообщение для olegsuv Посмотреть профиль Найти все сообщения от olegsuv
 
Регистрация: 04.10.2012
Сообщений: 5

Deff,
ничего необычного, что-то вроде такого:
[hide=20]Суть бага в том что прист может использовать [furl=http://cata.wowway.ru/?spell=11446]Контроль над разумом[/furl] [furl=http://cata.wowway.ru/?npc=39708] на этого моба[/furl] и использовать у него [furl=http://cata.wowway.ru/?spell=93633]вот этот спел [/furl]и этот спел дпсит в районе 200к. Всем удачи! [/hide]

Вложений хайд в хайд быть не должно, с остальным тегами конфликтовать тоже не должно.

На счет п.1 не сильно понял.

рони, спасибо за код, попробую
Ответить с цитированием
  #40 (permalink)  
Старый 01.02.2013, 01:24
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

//Параметры:  str,'hide',wrp1,wrp2
function funkReplac (a,b,c,d) {
   var reg= new RegExp ('\\['+b+'=(\\d*)+\\s*]([\\s\\S]*)?\\[\\/'+b+'\\]','igm')
   return a=a.replace(reg,c.replace('##Замена##','$1')+'$2'+d)
}
function HideReplac (str) {
var b='hide';
var c='<div class="HiddenBlock"><div class="NeededPoints" style="display: block; ">##Замена##</div><div class="HiddenText">';
var d='</div></div>';
return funkReplac (str,b,c,d)
}
function aHideReplac (str) {
var b='ahide';
var c='<div class="HiddenBlock"><div class="NeededPoints" style="display: block; ">##Замена##</div><div class="HiddenText">';
var d='</div></div>';
return funkReplac (str,b,c,d)
}


var str = '[hide=20]Суть бага в том что прист может использовать [furl=http://cata.wowway.ru/?spell=11446]Контроль над разумом[/furl] [furl=http://cata.wowway.ru/?npc=39708] на этого моба[/furl] и использовать у него [furl=http://cata.wowway.ru/?spell=93633]вот этот спел [/furl]и этот спел дпсит в районе 200к. Всем удачи! [/hide]'

alert(aHideReplac (HideReplac (str))) //

Итог для выложенного примера:
jQuery(this).html(aHideReplac(HideReplac(Tmp)));
// Можно упростить если в одной строке не встречаются одновременно  hide и ahide

Последний раз редактировалось Deff, 01.02.2013 в 03:27.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с регуляркой shtormIK Общие вопросы Javascript 6 26.06.2012 20:02
Помогите плз с регуляркой zsaz jQuery 1 25.05.2012 18:41
помогите с регуляркой ... motoroller Элементы интерфейса 1 23.11.2009 22:01
помогите с регуляркой Holod Общие вопросы Javascript 1 19.08.2009 12:02
Помогите с регуляркой... alexKniaz AJAX и COMET 0 03.11.2008 01:16