Stripping Invalid Characters From Currency Numbers
When building interactive calculation forms, the form user is frequently required to enter currency amounts.
Currency symbols, commas, spaces, and other characters can wreak havoc with the calculation. The calculation fails, resulting in a script error, or the calculated result is incorrect.
Here is a way to strip invalid characters from string values for 3 different programming languages, Perl, PHP, and JavaScript. All characters except numbers and periods are removed from the value.
Perl:
#!/usr/bin/perl use strict; print "Content-type:text/html\n\n<head><body>"; my $teststring = '$24,150.85'; print "Before: $teststring<br >"; $teststring =~ s/[^\d\.]//g; print "After: $teststring";
PHP:
<?php $teststring = '$24,150.85'; echo "Before: $teststring<br />"; if( preg_match('/[&\d\.]/',$teststring) ) { $teststring = preg_replace('/[^\d\.]/','',$teststring); } echo "After: $teststring"; ?>
JavaScript:
<script type="text/javascript"> var teststring = "$24,150.85"; alert("Before: " + teststring); var re = /[^\d\.]/g; teststring = teststring.replace(re,""); alert("After: " + teststring); </script>
Will Bontrager