30 lines
674 B
TypeScript
30 lines
674 B
TypeScript
function trimExtraChar(value: string, char: string, regExp: RegExp) {
|
|
const index = value.indexOf(char)
|
|
|
|
if (index === -1)
|
|
return value
|
|
|
|
if (char === '-' && index !== 0)
|
|
return value.slice(0, index)
|
|
|
|
return value.slice(0, index + 1) + value.slice(index).replace(regExp, '')
|
|
}
|
|
|
|
export function formatNumber(value: string, allowDot = true, allowMinus = true) {
|
|
if (allowDot)
|
|
value = trimExtraChar(value, '.', /\./g)
|
|
|
|
else
|
|
value = value.split('.')[0]
|
|
|
|
if (allowMinus)
|
|
value = trimExtraChar(value, '-', /-/g)
|
|
|
|
else
|
|
value = value.replace(/-/, '')
|
|
|
|
const regExp = allowDot ? /[^-0-9.]/g : /[^-0-9]/g
|
|
|
|
return value.replace(regExp, '')
|
|
}
|