I have a column with different currencies and ways to write numbers that I want to convert to numbers, ex: $1.5M €1.5B $1.5B $1.5k €1.5k $1.5K
All the .tests I run on my regex return false. I think the issue is that the value returned has square brackets but I don't know how to take only the number. When I put a log, it shows: Info [1.5] and not Info 1.5
function ConvertToInteger (Sheet,columnToConvert) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName(Sheet);
var shLastRow = sh.getLastRow();
var shdata = sh.getDataRange().getValues();
var regExp = new RegExp('[.,0123456789]+');
var regExpBillionDollar = new RegExp('[\$][.,0-9]+[B$]','g');
var regExpMillionDollar = new RegExp('[\$][.,0-9]+[M$]','g');
var regExpKiloDollar = new RegExp('[\$][.,0-9]+[K$]','g');
var regExpBillionEuros = new RegExp('[\€][.,0-9]+[B$]','g');
var regExpMillionEuros = new RegExp('[\€][.,0-9]+[M$]','g');
var regExpKiloEuros = new RegExp('[\€][.,0-9]+[K$]','g');
for (var i = 1; i < shLastRow; i++) {
var DataConverted = regExp.exec(shdata[i][columnToConvert])
if (regExpBillionDollar.test(DataConverted)) {
sh.getRange(i+1, columnToConvert+1).setValue((DataConverted *1000) * 0.9); //Convert to Euros
}
}
}