Regex to replace everything except numbers and a decimal point
JavascriptRegexJavascript Problem Overview
I have a text field that needs to remain only text or decimal. Here is the code that I'm currently using to replace everything except numbers and a decimal point. Issue is, I can't figure out a regex that will identify everything else
document.getElementById(target).value = newVal.replace(/\D[^\.]/g, "");
The \D works fine, but I've tried (?!.), (?!\.), [^.], [^\.]
and so on...
Any suggestions for a regular expression that identifies positively with anything except a number or a decimal?
Thanks for the help
Javascript Solutions
Solution 1 - Javascript
Use this:
document.getElementById(target).value = newVal.replace(/[^0-9.]/g, '');
Solution 2 - Javascript
Removing only decimal part can be done as follows:
number.replace(/(\.\d+)+/,'');
This would convert 13.6667px into 13px (leaving units px untouched).
Solution 3 - Javascript
Try this:
document.getElementById(target).value = newVal.replace(/^\d+(\.\d{0,2})?$/, "");
Solution 4 - Javascript
Solution 5 - Javascript
Regular expression syntax cheatsheethttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Cheatsheet">Go MDN
const str1 = 'hello 123 !@#$%^WORLD?.456_';
const str2 = '৳ $ 20,500.00';
console.log(str1.replace(/[^\d.]/g, "")); //123.456
console.log(str2.replace(/[^\d.]/g, "")); //20500.00