Изчистване са спейсовете в стринг

hpstuff

Registered
Ако някой разбира от регулярни изрази бих искал регулярен израз който да ми изчиства спейсовете в началото и в края на стринга а посредата кадето има да оставя само по един.

Примерно имам стринг ' blqblq blqblq blq blqblqblq ' да стане 'blqblq blqblq blq blqblqblq', или ако имам стринг ' blq ' да остане 'blq' и хайде още един пример 'blq blqq ' > 'blq blqq'.

Надявам се че сте ме разбрали нов съм в регулярните изрази и неразбирам чак толкова, ще сам много благодарен ако някой успее да го направи.
 
Така?
Код:
$string = preg_replace('/([a-zа-я0-9]+)(\s*)/i', '$1 ', $string);

Иначе инервалите в кроищата можеш да ги махнеш много по-лесно със trim().
Код:
$string = trim($string);
 
albatrosvarna каза:
$str=' blq blq blq blq';
echo trim($str);
Не ти трябват регулярни изрази.
Но това няма да намали интервалите между думите до 1, ако са повече.
 
Искаш да кажеш, че ако
Код:
$a='blq                                 blq blq '
то няма да намали този голям диапазон от интервали до 1? така ли?
 
albatrosvarna каза:
Искаш да кажеш, че ако
Код:
$a='blq                                 blq blq '
то няма да намали този голям диапазон от интервали до 1? така ли?

Тази функция връща низа str с премахнати в началото и в края знаци. Ако не е предаден втори параметър, функцията trim() ще изтрие следните знаци:

" " (ASCII 32 (0x20)), знак за обикновен интервал.
"\t" (ASCII 9 (0x09)), знак за табулация.
"\n" (ASCII 10 (0x0A)), знак за нов ред.
"\r" (ASCII 13 (0x0D)), знак за връщане на каретката.
"\0" (ASCII 0 (0x00)), NUL-байт.
"\x0B" (ASCII 11 (0x0B)), знак за вертикална табулация.
Как да го разбирам?
 
А с javascript как трябва да изглежда функцията е ето така
string.replace(regulqrniq_izraz,skakvo_da_go_zamesti);

Нямам идея как работи preg_replace в php-то.
А алтернатива на trim ?
 
PHP
$str = ' blq blq blq ';
$str = preg_replace("/\s+/", ' ', trim($str));

JS
str = str.replace(/^\s+(.*)\s+$/, "$1").replace(/\s+/, ' ');

Това с JSа не съм го пробвал.
 
hpstuff каза:
Нямам идея как работи preg_replace в php-то.
А алтернатива на trim ?
А това, което ти предложих пробва ли го дали работи?
Алтернатива? Каква по-точно?
 
А и още едно нещо което се сетих като видях че в регулярния израз има само букви та може да има и _ - # . * : и така.
 
Добре @StormBreaker str.replace(/\s+/g, ' '); това стана намали ми ги до 1 само като добавих едно g накрая зада ми обиколи всични спейсове сега но това е че не премахва в началото и в края не се получи с другия регулярен израз.
 
hpstuff каза:
Да де ако в края е един го премахва но ако са повече ми остава един

Така кажи ето с един въпрос повече:

str = str.replace(/^\s*(.*?)\s*$/, "$1").replace(/\s+/g, ' ');
 
Отравих го ето така str.replace(/\s+/g, ' ').replace(/^\s+(.*)\s+$/,"$1");
с първия регулярен израз орязвам всичко спейсове до 1 и после втория премахва първия и последния (обяснявам за да послужи и на някой друг)
Благодаря много @StormBreaker +1.
 
hpstuff каза:
Отравих го ето така str.replace(/\s+/g, ' ').replace(/^\s+(.*)\s+$/,"$1");
с първия регулярен израз орязвам всичко спейсове до 1 и после втория премахва първия и последния (обяснявам за да послужи и на някой друг)
Благодаря много @StormBreaker +1.

Последния дето ти дадох трябва да работи. Или поне смени в това /^\s+(.*)\s+$/ плюсовете със звездички, защото така маха само когато и в началото и в края има спейсове.
 

Back
Горе