How to do currency validation that also allowed to put negative at infront.

Hi,

For the below Java sctipt, How can I modify it so that my input will allowed me to put the negative sign "-" at the begining?

<html>
<head>
      <title>Test Page</title>

      <script language="JavaScript">
     
      function main()
      {
            document.getElementById("price").focus();
      }

      function parseCurrency(field)
      {
            var currency = /^\d*(?:\.\d{0,2})?$/;
            var onlyCurrency = /^(\d*(?:\.\d{0,2})?)[\s\S]*$/;
           
            if(!currency.test(field.value))
            {
                  field.value = field.value.replace(onlyCurrency, "$1");
            }
      }
     
      </script>
</head>

<body onload="javascript:main();">

      $ <input type="text" id="price" name="price" onKeyUp="javascript:parseCurrency(this);" onChange="javascript:parseCurrency(this);">

</body>
</html>
runbirdAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Lolly-InkConnect With a Mentor Commented:
Add the minus sign to the 2 regular expressions:
<html>
<head>
      <title>Test Page</title>
 
      <script language="JavaScript">
      
      function main()
      {
            document.getElementById("price").focus();
      }
 
      function parseCurrency(field)
      {
            var currency = /^\-?\d*(?:\.\d{0,2})?$/;
            var onlyCurrency = /^(\-?\d*(?:\.\d{0,2})?)[\s\S]*$/;
            
            if(!currency.test(field.value))
            {
                  field.value = field.value.replace(onlyCurrency, "$1");
            }
      }
      
      </script>
</head>
 
<body onload="javascript:main();">
 
      $ <input type="text" id="price" name="price" onKeyUp="javascript:parseCurrency(this);" onChange="javascript:parseCurrency(this);">
 
</body>
</html>

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.