Forum Webscript.Ru
Программирование => Perl => Тема начата: frenky от 22 Июня 2004, 21:20:40
-
Если я через textarea передаю сообщение как мне из него поубирать переводы на новую строчку?
-
man Регулярные выражения
perldoc perlre
$text =~s /\\n//g;
-
Phoinix неа...
perldoc -f chomp
-
thanks
-
NeoNox
из perldoc
It\'s often used to remove the newline from the end of an input record
а там textarea -> много строк, много символов новой строки, а не только в конце. chomp не катит
-
Phoinix
$text =~s/\\n?\\r//g;
-
Green Kakadu нужно смотреть код и что он с ним дальше делает.
Если построчно обрабатывает то chomp:
Benchmark: timing 6 iterations of CHOMP, RegEx...
CHOMP: 0 wallclock secs ( 0.01 usr + 0.00 sys = 0.01 CPU) @ 600.00/s (n=6)
RegEx: 0 wallclock secs ( 0.02 usr + 0.00 sys = 0.02 CPU) @ 300.00/s (n=6)
Rate RegEx CHOMP
RegEx 300/s -- -50%
CHOMP 600/s 100% --
-
2 commander
тогда уж $text =~s/[\\n\\r]//g;
NeoNox
согласен, насчет быстродействия не поспоришь, но сложно представить, чтоб ввод из textarea ;) разбирался построчно.
-
NeoNox
Сомневаюсь, что данные переданные из TEXTAREA обрабатываются построчно, т.к. они передаются как скаляр, если только эти данные не перевести в массив:
my @text = sprit(/\\n/,$text);
но тогда отпадает смысл chomp... ;)
commander
[OFF]Да пропустил, не спорю... ;)[/OFF]
-
поправлю раз уже нашел :)
@text = split(/\\n/,$text);
-
Как вариант:
$textarea=~s/\\n/
/g;
Так сохраняться переводы строк, если в дальнейшем потребуется использовать оригинальное форматирование для вывода в html.