Jag har ett text-formulär där besökaren kan fylla i ett tal. För att förhindra att det skrivs i en massa andra saker (t.ex. bokstäver) har jag löst detta med Regular Expressions. I pattern har jag också tillåtit att besökaren kan skriva punkt och komma. Problemet ligger i att om besökaren t.ex. skriver 2 punkter, 1 punkt och ett komma osv så blir det ju förstås fel.
Är det någon som kan lösa detta så att detta förhindras?
Prova att matcha mot regexpen:
"^-?\d*([\.,])?\d*([Ee])?-?\d*$"
om du tycker tex ".5" och ",5" är ok. Vill du tvinga fram "0.5" osv välj denna:
"^-?\d+([\.,])?\d*([Ee])?-?\d*$"
Jag tänkte på en grej till. Ifall jag vill att man ska kunna skriva in bara .5 och ,5 så använder jag ju pattern:
^-?\d*([\.,])?\d*([Ee])?-?\d*$
Men då uppkommer ytterliggare ett problem ifall någon bov skriver bara punkt eller komma. Då släpper ju pattern igenom det. Går det att lösa så att det måste iallfall vara siffror på någon sida av punkten eller kommat?
Tackar...jag modifierade ditt andra förslag lite, fixade så att det inte gick att skriva typ 5434, (eller punkt) utan någon decimal. Jag tog också bort en onödig \d*