Pastrare numere si inlocuire virgula cu punct in php

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Avatar utilizator
ionatan
Mesaje: 94

Pastrare numere si inlocuire virgula cu punct in php

Dintr- un anumit motiv nu pot sa setez <input type="number">. Cum as putea sa elimin orice litera sau alt caracter care o introduce utilizatorul iar virgula sa o transform în punct ?
Cumpără adevărul, şi nu-l vinde, înţelepciunea, învăţătura şi priceperea.
https://www.crestinmultimedia.com/

MarPlo Mesaje: 4343
Salut,
Poti sa folosesti RegExp cu preg_replace(), ca in acest exemplu:

Cod: Selectaţi tot

$nr ='a-b?1.848,33_xy@)';
$nr = preg_replace(['/[^0-9,]*/i', '/,/'], ['', '.'], $nr); //keeps numbers, comma; replace comma with dot
echo $nr;  // 1848.33

ionatan Mesaje: 94
Salut,
nu reusesc sa fac ce vreau.... Pana acum e ok totul, dar daca utilizatorul in loc de ultima virgula pe care o transform in punct,ok, introduce punct sau spatiu sau alta litera.... o pot transforma in punct?
Cumpără adevărul, şi nu-l vinde, înţelepciunea, învăţătura şi priceperea.
https://www.crestinmultimedia.com/

MarPlo Mesaje: 4343
Daca vrei sa controlezi toate scenariile posibile la ce poate introduce utilizatorul intr-un camp text, ceri cam imposibilul. Pote adauga intai virgula si apoi mai multe puncte, sau mai multe virgule; diverse combinatii cu alte caractere, ordinea si numarul lor.. Mai usor ar fi sa le controlezi gandurile.
Cel mai sigur si simplu e sa folosesti campul de formular <input type="number">.

andras Mesaje: 430
Un formular care nu permite input type="number" este un formular prost facut si trebuie reproiectat.