2016-04-19 3 views
1

Ich habe Stack Overflow durchsucht, aber ich kann nicht die richtige Antwort auf meine Frage bekommen.Wie kann ich dem Benutzer erlauben, nur Numerisch (mit/ohne Dezimalpunkt) einzugeben. ODER numerisch mit 'K'/'B'

Wie kann ich dem Benutzer die Eingabe einer Nummer oder Nummer mit "K (Tausende)" oder "M (Millionen)" erlauben?

Ich habe versucht, Mustern, RegExp usw.

Gibt es einen regulären Ausdruck für das? Ich habe versucht mit ^[0-9]*$ und auch ^[0-9\K\M]*$, aber ich weiß nicht, ob es der richtige Ausdruck ist.

+0

'^ \ d + (\ \ d +.)? (K | M | B) $' – rock321987

+0

Post einige gültige Eingaben?. –

+0

Ich würde '/^\ d * \.? \ D + [KM]? $ /' - es entspricht '.05' und kann leicht erweitert werden, um negative Werte zu unterstützen. –

Antwort

1

Denken Sie dies bedeuten,

document.write(/^\d+(?:\.\d+)?[KM]?$/.test('121K') + '<br/>'); 
 
document.write(/^\d+(?:\.\d+)?[KM]?$/.test('121.7M') + '<br/>'); 
 
document.write(/^\d+(?:\.\d+)?[KM]?$/.test('121.45') + '<br/>');

+0

funktioniert perfekt für Regexp-Tester. werde es auf js versuchen. danke! auch, ich habe gerade [kKMm] hinzugefügt, um Kleinbuchstaben – Hitori

+0

keine Notwendigkeit dafür zu erlauben, fügen Sie nur die Groß- und Kleinschreibung Modifizierer 'i'' document.write (/^\ d + (?: \. \ D +)? [KM]? $ /i.test('121m ') +'
'); ' –

+0

ohhh. Aha. danke, ich habe gerade Schwierigkeiten, es auf meinem js zu implementieren. :) – Hitori

2

Diese

^(\d+(?:\.\d+)?)\s*([KMB])?$ 

JS-Code

var re = /^(\d+(?:\.\d+)?)\s*([KMB])?$/; 
 
var str = '1234.567K'; 
 

 
var result = str.match(re); 
 
document.writeln(result + '<br>')
arbeiten

Ideone Demo

Verwandte Themen