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 />");
    }
}