Inlocuire caractere dintre cuvinte cu liniuta in javascript

cadou
Mesaje: 284

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
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
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
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
Multumesc frumos, Marplo !
Respect!

Subiecte similare