Index: trunk/data/validator/numeric.mapcss
===================================================================
--- trunk/data/validator/numeric.mapcss	(revision 13349)
+++ trunk/data/validator/numeric.mapcss	(revision 13357)
@@ -55,5 +55,5 @@
 }
 
-*[height][height =~ /^[0-9]+,[0-9]+( (m|ft))?$/] {
+*[height][height =~ /^[0-9]+,[0-9][0-9]?( (m|ft))?$/] {
   throwWarning: tr("unusual value of {0}: use . instead of , as decimal separator", "{0.key}");
   fixAdd: concat("height=", replace(tag("height"), ",", "."));
@@ -62,4 +62,5 @@
   assertMatch: "node height=12,00";
   assertMatch: "node height=12,5 ft";
+  assertNoMatch: "node height=12,000";
   assertNoMatch: "node height=3,50,5";
   assertNoMatch: "node height=3.5";
@@ -77,5 +78,5 @@
 }
 
-*[maxheight][maxheight =~ /^[0-9]+,[0-9]+( (m|ft))?$/] {
+*[maxheight][maxheight =~ /^[0-9]+,[0-9][0-9]?( (m|ft))?$/] {
   throwWarning: tr("unusual value of {0}: use . instead of , as decimal separator", "{0.key}");
   fixAdd: concat("maxheight=", replace(tag("maxheight"), ",", "."));
@@ -84,4 +85,5 @@
   assertMatch: "node maxheight=12,00";
   assertMatch: "node maxheight=12,5 ft";
+  assertNoMatch: "node maxheight=12,000";
   assertNoMatch: "node maxheight=3,50,5";
   assertNoMatch: "node maxheight=3.5";
@@ -101,5 +103,5 @@
 }
 
-*[width][width =~ /^[0-9]+,[0-9]+( (m|ft))?$/] {
+*[width][width =~ /^[0-9]+,[0-9][0-9]?( (m|ft))?$/] {
   throwWarning: tr("unusual value of {0}: use . instead of , as decimal separator", "{0.key}");
   fixAdd: concat("width=", replace(tag("width"), ",", "."));
@@ -107,4 +109,5 @@
   assertMatch: "node width=5,5";
   assertMatch: "node width=12,00";
+  assertNoMatch: "node width=12,000";
   assertNoMatch: "node width=3,50,5";
   assertNoMatch: "node width=3.5";
@@ -123,5 +126,5 @@
 }
 
-*[maxwidth][maxwidth =~ /^[0-9]+,[0-9]+( (m|ft))?$/] {
+*[maxwidth][maxwidth =~ /^[0-9]+,[0-9][0-9]?( (m|ft))?$/] {
   throwWarning: tr("unusual value of {0}: use . instead of , as decimal separator", "{0.key}");
   fixAdd: concat("maxwidth=", replace(tag("maxwidth"), ",", "."));
@@ -129,4 +132,5 @@
   assertMatch: "node maxwidth=5,5";
   assertMatch: "node maxwidth=12,00";
+  assertNoMatch: "node maxwidth=12,000";
   assertNoMatch: "node maxwidth=3,50,5";
   assertNoMatch: "node maxwidth=3.5";
@@ -143,5 +147,5 @@
 }
 
-*[maxweight][maxweight =~ /^[0-9]+,[0-9]+( (t|kg|lbs))?$/] {
+*[maxweight][maxweight =~ /^[0-9]+,[0-9][0-9]?( (t|kg|lbs))?$/] {
   throwWarning: tr("unusual value of {0}: use . instead of , as decimal separator", "{0.key}");
   fixAdd: concat("maxweight=", replace(tag("maxweight"), ",", "."));
@@ -149,4 +153,5 @@
   assertMatch: "node maxweight=5,5";
   assertMatch: "node maxweight=12,00";
+  assertNoMatch: "node maxweight=12,000";
   assertNoMatch: "node maxweight=3,50,5";
   assertNoMatch: "node maxweight=3.5";
@@ -181,5 +186,5 @@
 }
 
-*[distance][distance =~ /^[0-9]+,[0-9]+( (m|km|mi|nmi))?$/] {
+*[distance][distance =~ /^[0-9]+,[0-9][0-9]?( (m|km|mi|nmi))?$/] {
   throwWarning: tr("unusual value of {0}: use . instead of , as decimal separator", "{0.key}");
   fixAdd: concat("distance=", replace(tag("distance"), ",", "."));
@@ -187,4 +192,5 @@
   assertMatch: "node distance=5,5";
   assertMatch: "node distance=12,00";
+  assertNoMatch: "node distance=12,000";
   assertNoMatch: "node distance=3,50,5";
   assertNoMatch: "node distance=3.5";
@@ -317,5 +323,5 @@
   assertNoMatch: "node ele=high";
 }
-*[ele][ele =~ /^[0-9]+,[0-9]+$/] {
+*[ele][ele =~ /^[0-9]+,[0-9][0-9]?$/] {
   throwWarning: tr("unusual value of {0}: use . instead of , as decimal separator", "{0.key}");
   fixAdd: concat("ele=", replace(tag("ele"), ",", "."));
@@ -323,4 +329,5 @@
   assertMatch: "node ele=5,5";
   assertMatch: "node ele=12,00";
+  assertNoMatch: "node ele=8,848"; /* wrongly used thousands separator */
   assertNoMatch: "node ele=3,50,5";
   assertNoMatch: "node ele=3.5";
