2016-04-05 11 views
-5

Ich habe versucht, eine Regex-Funktion, die beide 123 oder 123,45 erlauben, aber diese funktionieren nicht gut. Ich habe viele Vorschläge ausprobiert, die ich hier bekommen habe, aber ich bin nicht gut geworden.JavaScript Regex-Funktion für Integer-und Float-Werte beide

function numbers(e) { 
    var id = document.getElementById(e).value; 

    if (id.match("^\((([0-9]*)(\.([0-9]+))?)\)$")) 
    { 
     alert(e+" can contain only Integers or Float!!"); 
     document.getElementById(e).value = ""; 
    } 
} 
+2

Warte gekennzeichnet durch Wiktor Duplikat werden! –

+0

Wenn der Code mit '(111111.22222) übereinstimmen soll' - ja, es ist ein Betrogener. * Diese funktionieren nicht einwandfrei * - was funktioniert nicht, wann, mit welchen Strings? Wie scheitert es? Die Frage ist unklar. –

+0

Geben Sie ein Beispiel, wo es fehlschlägt – rock321987

Antwort

0

Dieses einfache Stück regex hier könnte Ihnen nützlich sein

(\d+(\.\d+)?) 

Es

  • Eine Zahl, 1 oder mehrmals
  • Ein optionaler übereinstimmen: . gefolgt von 1 oder mehr Nummern.

Es entspricht 123 und 123.45, die die beiden angegebenen Beispiele sind.

Siehe here für ein Beispiel

+0

ich benutze diese Funktion mit ** html keyup event **, also gibt es mir auf jeder Rücktaste Alarm !!. –

Verwandte Themen