Inlocuire caractere dintre cuvinte cu liniuta in javascript

Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
cadou
Mesaje: 328

Inlocuire caractere dintre cuvinte cu liniuta in javascript

Am nevoie sa fac in javascript ceva de genul:
preiau titlu dintr-un camp ce il dau mai departe sa il bag in baza de date.
as dori ca acest titlu sa nu contina spatii sau alte balarii intre cuvinte, ci sa e inlocuiesc cu - , exemplu : titlu asta va fi'asa => transformat in : titlu-asta-va-vi-asa ....

Titlul transformat in cel cu " - " intre cuvinte il voi folosi ca sa fac acest redirect catre titlul transformat cu " - "
Acest titlu am nevoie si in varianta originala, cum va fi scris si in varianta cu " - " :D
Sper ca am explicat cum trebuie :D

Multumesc anticipat !!! :)

MarPlo Mesaje: 4343
Incearca codul din acest exemplu:

Cod: Selectaţi tot

var str ='abc 123/*( [fff #fgbn   gjlifv_?xyz011 )';

//strege orice nu e caracter alfa-numeric, spatiu si liniuta
//apoi sterge multiple spatii
//apoi inlocuieste spatiu cu liniuta
var str2 = str.replace(/[^a-z0-9_ \-]+/ig, '').replace(/\s\s+/ig, ' ').trim().replace(/ /g, '-');

alert(str2); // abc-123-fff-fgbn-gjlifv_xyz011

cadou Mesaje: 328
Multumesc frumos,
aceeasi chestie cum o fac in php ?

Am incercat sa fac ceva din exemplu de mai sus dar in php

Cod: Selectaţi tot

$text = 'abc 123/*( [fff #fgbn   gjlifv_?xyz011 )';
$txt2 = preg_replace("/[^a-z0-9_ \-]+/ig, ''/\s\s+/ig, ' '/ /g", '-', $text);

echo $txt2; // abc-123-fff-fgbn-gjlifv_xyz011
dar nu am reusit ... primesc eroare ca functia mea nu poate inlocui , si g ....

MarPlo Mesaje: 4343
In php se poate face asa:

Cod: Selectaţi tot

$text = 'abc 123/*( [fff #fgbn   gjlifv_?xyz011 )';
$txt2 = preg_replace(['/[^a-z0-9_ \-]+/i', '/\s\s+/is'], ['', ' '], $text);
$txt2 = str_ireplace(' ', '-', trim($txt2));

echo $txt2; // abc-123-fff-fgbn-gjlifv_xyz011

cadou Mesaje: 328
Multumesc frumos, Marplo !
Respect!

Subiecte similare