|
 49 Кб |
|
| У меня вот такой пример :
<style>
.highligt
{
background:#FF3;
}
</style>
<script type="text/javascript">
function stripHTML(string) {
var pattern = new RegExp("\(Chocolate\)", "gi")
var replaceWith = "<span class='highligt'>$1</span>";
return string.replace(pattern, replaceWith);
}
function testRegExp()
{
var text = '<a target="_blank" href="blabla dot ru/wiki/Chocolate" title="Chocolate">Chocolate</a> Chocolate Chocolate';
document.writeln(stripHTML(text));
}
|
В итоге он выделяет все совпадение, что приводит к разрушению.(скриншот RegExp.png)
Желательно пропустил совпадение внутри тега. Плизз Хелр ми. | |
|
|
|
|
|
|
|
для: Nigina
(06.03.2012 в 11:23)
| |
<script type="text/javascript">
function stripHTML(string) {
var pattern = new RegExp ('Chocolate(?!")', 'gi')
var arr = pattern.exec (string);
var replaceWith = "<span class='highligt'>" + arr + "</span>";
return (string.replace (pattern, replaceWith));
}
function testRegExp()
{
var text = '<a target="_blank" href="blabla dot ru/wiki/Chocolate" title="Chocolate">Chocolate</a> Chocolate Chocolate';
document.writeln (stripHTML (text));
}
testRegExp()
</script>
|
| |
|
|
|
|
|
|
|
для: ЯСА
(06.03.2012 в 13:05)
| | ЯСА, огромное спс ! В этом примере работает отлично! | |
|
|
|
|
 54.5 Кб |
|
|
для: ЯСА
(06.03.2012 в 13:05)
| | на этом примере:
var text = '<a target="_blank" href="blabla dot org" title="Шоколад (значения)">Шоколад (значения)</a>';
|
(см. скриншот)
не работает, в чем проблема? | |
|
|
|
|
|
|
|
для: Nigina
(06.03.2012 в 16:15)
| | utf-8? | |
|
|
|
|
|
|
|
для: Nigina
(06.03.2012 в 16:15)
| | Проблема - в понимании/непонимании вами механизма регулярных выражений.
Ищется слово, сразу за которым НЕТ двойной кавычки.
В примере с Chocolate для этого и прописано Chocolate(?!")
А в примере с Шоколад в атрибутах тега <A> после слова следует не двойная кавычка, а пробел и за ним слово значения в круглых скобках.
Если будете выделять спанами всю конструкцию Шоколад (значения), то всё будет работать. А отдельно Шоколад - не будет.
Ферштейн?
-----
Сначала вам захотелось найти и выделить одно слово.
Теперь вам хочется выделить не всю конструкцию, а часть её.
Завтра вам захочется выделять одну заглавную букву...
Поймите, что RegExp ищет чёткие совпадения, которые можно ТОЧНО описать.
И, к сожалению, в Javascript'e поддерживаемый механизм регулярки очень слабенький.
Конструкций "заглядывания вперёд", как в Perl и PHP, в Javascript'e просто НЕТ. | |
|
|
|
|
|
|
|
для: ЯСА
(06.03.2012 в 18:41)
| | Спс, ЯСА, да теперь все понятно в чем проблема. Я с RegExp-ом на Вы. Наверно изначально не правильно задала вопрос, надо игнорировать все что внутри тега <A> (href, title, id, class ...). Пробовала селекторами игнорировать <a>, результат 0. Может скинете идею? | |
|
|
|