Preg_match Помощ!...

tahys

Registered
Въвеждам този текст:
Твоето подсъзнание, пак е в състояние,
да тълкува като секс всяка моя дума днес.
Мръсно подсъзнание - будно състояние,
за начало на нощта никак не е зле това!

Щом за теб едно "Здравей", означава "Я ме сгрей",
с какво да продължа?
Щом дори като мълча, пак безсрамно ти звуча,
как ли ще ти прозвучи това?

Дишай, да настръхна, дишай да изтръпна,
дишай, и разхождай бавно дъха си по мен.
Дишай, по-дълбоко, дишай още много,
дишай, докато не полудея съвсем!

Твоето подсъзнание ми е оправдание,
чак сега ли го разбра - искам те и то сега!
Мръсно подсъзнание - будно състояние,
две достатъчни неща да си паснем в любовта!

и го преоверявам с:
Код:
preg_match('/^[0-9a-zа-я\s\,\-\.\&\"\?\!(\<br\/>)+]+$/i', $niz)
и не ми показва съвпадения?... от къде идва този проблем?
 
тц.. не става махнах функцията nl2br и пуснах проверката и отново не я минава ;-)
 
preg_match('/^[0-9a-zа-я\s\,\-\.\&\"\?\!(\<br\/>)+]+$/i', $niz)

Нямаш <br> в теста и регулярния израз е много лош като цяло. В ситуацията даже не са ти нужни регулярни изрази. Просто решение е:

var rows = explode("\n", $niz);

foreach( $rows as $r )
// обработва един ред
 
ползвай preg_match_all :?: при preg_match ще ти връща един и същ резултат, тоест ако имаш повече от 1 съвпадение, preg_match няма да ти върши работа, но ако чакаш само 1 preg_match иначе preg_match_all, и това br го махни, ти го нямаш ..
 
Еми пак му трябва preg_match_all(), защото това са отделни редове не е един прав текст, който да проверява. Или да разделя с explode() всеки ред и с цикъл да проверява всеки отделно, или да пусне един preg_match_all().
 
/^[ч\w\s\,\-\.\&\;\?\!]+$/i

действай с този (след htmlspecialchars), изглежда има някакъв проблем с ч-то
 

Back
Горе