2016-04-22 19 views
0

Erkennen Ich versuche, eine Zahl mit einem Dezimalpunkt Regex zu erhalten, ich habe diese Zeichenfolge in dem die Anzahl in FrageRegEx nicht Dezimalzahl gut

RewriteRule ^additem/[0-9]+(\.[0-9]{1,2})?$additem.php?price=$1 

Allerdings, wenn ich 2,02 eingeben, wird die gespeicherte Variable ist .02. Was mache ich falsch?

+2

Sie vermissen einen Raum an der Grenze zwischen dein Muster und der Ersatz. Ich denke du brauchst 'RewriteRule^additem/([0-9] + (?: \. [0-9] {1,2})?) $ Additem.php? Price = $ 1' –

+0

Danke, das hat den Trick gemacht –

+0

Verwenden Sie Kommentare, um nach weiteren Informationen zu fragen oder Verbesserungsvorschläge zu machen. Vermeiden Sie Fragen in Kommentaren zu beantworten. – Pietro

Antwort

1

Sie benötigen einen Raum zwischen dem Muster und dem Ersatz, hinzuzufügen und eine Erfassungsgruppe um das gesamte Gleitkommawert Muster zu verwenden:

RewriteRule ^additem/([0-9]+(?:\.[0-9]{1,2})?)$ additem.php?price=$1 
        ^  ^^   ^^^  

das Sehen regex demo