2017-03-12 3 views
2

Ich möchte eine Zahl in 0 (wenn der übergebene Wert eine ganze Zahl ist) oder 30 (wenn der übergebene Wert ist Float) nur mit Regex konvertieren.Konvertieren von Nummer mit Regex

Ohne regex ist es ziemlich einfach:

const someNumber = Number.isInteger(16.5) ? 0 : 30; 
console.log(someNumber); // 30 

Aber wie dies mit Regex zu tun?

+1

'somenumber = /\./.test(16.5) * 30' – Thomas

Antwort

2

let someNumber = /\d+\./.test(16.5) ? 30 : 0; 
 
let someNumber2 = /\d+\./.test(16) ? 30 : 0; 
 
console.log(someNumber); 
 
console.log(someNumber2);

0

Mit nur Regex Ersetzungen und Typkonvertierungen:

n => Number(n.toString().replace(/^/, "30").replace(/(30)\d+(?:\.\d+)|3(0)\d+/, "$1$2"))