2010-06-17 2 views
0

hello все на моем сайте пользователи могут вставлять данные в виде табличного формата. эта таблица может быть любого стиля. но im с использованием регулярного выражения, чтобы дать этим таблицам стандартный формат нашего сайта. Но когда im с помощью regex работает хорошо, но он удаляет colspan. но мне нужен colspan без его таблиц выглядит очень странно. Кто-нибудь, пожалуйста, скажите мне, что неправильно с моим регулярным выражением? Ниже мои регулярные выражения коды:Некоторая проблема с regex

$table=eregi_replace("<table[^>]*>","<table width='100%' border='0' cellspacing='0' cellpadding='0' class='tabularData'>", $table); 
$table= preg_replace('/style\s*=\s*(\'|").+(\'|")/i', '', $table); 
$table= preg_replace('/bgcolor\s*=\s*(\'|").+(\'|")/i', '', $table); 
$table=eregi_replace("<span[^>]*>","",$table); 

Заранее спасибо :)

+1

Функции ereg устарели. – kennytm

+0

И смешение функций ereg и preg вместе еще больше ew. – BoltClock

+1

И использование регулярных выражений для анализа HTML еще больше. :) –

ответ

1

Вы можете легко стиль таблицы с JavaScript. На самом деле вы должны. Если регулярное выражение работает так же, как над кодом пользователя, это может привести к проблемам безопасности, если пользователь выяснит ваше регулярное выражение (и если вы не сможете его правильно реализовать, что, вероятно, будет так).

// jquery table styling example (picks up all tables) 
$('table').css({ 
    'width': '100%', 
    'background-color': '#F00' 
}); 

Надеюсь, это поможет!

+0

Не только проблемы с безопасностью. У кода, скорее всего, будут ошибки и будет ад для поддержания – simendsjo

+0

width *, not 'with' – Sam

+0

@Sam Спасибо! с будет хорошей функцией if/else, чтобы иметь в CSS, хотя! :) – Frankie

1

Не используйте регулярные выражения, где это не нужно. Используйте DOM, чтобы разобрать это.

Смежные вопросы