Rolf B: Kommazahl erzeugen

Beitrag lesen

Hallo piet,

eine serverseitige Prüfung ist auf jeden Fall erforderlich. Man nimmt keine Daten vom Client ungeprüft entgegen.

Der Grund für die Form der Prüfung entzieht sich mir aber. „12“ oder "12." sind valide Kurzformen für "12.0", statt "0.12" gibt man gern auch mal sparsamerweise ".12" ein und im deutschen Sprachraum ist "12,3" als Dezimalzahl absolut gültig.

D.h. du solltest akzeptieren: 1-n Ziffern, optional gefolgt von einem Dezimaltrennzeichen und 0-m weiteren Ziffern ODER ein Dezimaltrennzeichen und 1-m weitere Ziffern.

Sowas geht mit dem pattern-Attribut des input Elements (sogar im IE, ab Version 10) und einer geschickten REGEX.

HTML:

<label for="foo">Bitte eine Dezimalzahl eingeben:"</label>
<input name="foo" id="foo" pattern="\d+([,.]\d*)?|[,.]\d+">

CSS:

input:not(:valid) { background-color: #fcc; }

Rolf

--
sumpsi - posui - clusi