JSFiddle - React, Tailwind, and code Playground
HTML
<span id='result'><span>
JavaScript
var goodStrArr = ["333,324.34",
"324.4",
"0",
"2,343,324.4",
"334242342.3",
"3,323.3",
"324234",
"324,234,432"];
var badStrArr = ["3,23,433.3",
"333,3324.34",
",32",
"3423.",
"332324,232.3",
"3,323.33,443",
"f234",
"324f",
"234d32"];
var pattern = /^(0|[1-9][0-9]{0,2}(?:(,[0-9]{3})*|[0-9]*))(\.[0-9]+){0,1}$/;
$("#result").append("The following should all match:<br />");
for (var i = 0; i < goodStrArr.length; i++) {
text = goodStrArr[i];
if(pattern.test(text)) {
$("#result").append("MATCHED: " + text + "<br />");
} else {
$("#result").append("NO MATCH: " + text + "<br />");
}
}
$("#result").append("<br />The following should all NOT match:<br />");
for (var i = 0; i < badStrArr.length; i++) {
text = badStrArr[i];
if(pattern.test(text)) {
$("#result").append("MATCHED: " + text + "<br />");
} else {
$("#result").append("NO MATCH: " + text + "<br />");
}
}