31.01.2013, 11:06
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
ast_ross,
1. Упрощайте, а не усложняйте задачу, -Очевидно, если К - большая - она в начале предложеия и тогда имеют значения лишь прилежащие теги.
2. Приводите все варианты*никто не будет додумывать - экстраполировать
3. Задача тянет уже на Работу
4. Есть css для первой буквы в теге http://htmlbook.ru/css/first-letter
Последний раз редактировалось Deff, 31.01.2013 в 11:08.
|
|
31.01.2013, 11:19
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,232
|
|
Сообщение от Deff
|
Задача тянет уже на Работу
|
Это точно...
|
|
31.01.2013, 11:19
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,133
|
|
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>'));
|
|
31.01.2013, 11:38
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,133
|
|
Deff,
Непонял что тут не корректно?
<p><p><span class="highlight"><b>К</b>о</span>роткометражки с ориентацией на классику немой комедии.</p>
|
|
31.01.2013, 11:41
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
рони,
Cоррь ....Заглючило воспроизведение в мозгах
|
|
01.02.2013, 00:03
|
Новичок на форуме
|
|
Регистрация: 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>'));
но в тексте скрипта очень часто используется такая регулярка и хочется цивилизованного способа, знаю что как-то через скобки и символ '|' делается, но экспериментировать на живом сайте боюсь.
|
|
01.02.2013, 00:20
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,133
|
|
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>'));
|
|
01.02.2013, 00:23
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
olegsuv,
1. Лучше преобразование строк делать в виде функции на входе строка, на выходе преобразованная строка.
2. Выложите пару примеров входных строк, поскольку надо учитывать возможные внутри лежащие BB и простые теги...
|
|
01.02.2013, 00:39
|
Новичок на форуме
|
|
Регистрация: 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 не сильно понял.
рони, спасибо за код, попробую
|
|
01.02.2013, 01:24
|
без статуса
|
|
Регистрация: 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.
|
|
|
|