//JS版
//将传入数据转换为字符串,并清除字符串中非数字与.的字符
//按数字格式补全字符串
var getFloatStr = function(num){
num += ''
num = num.replace(/[^0-9|\.]/g, '')//清除字符串中的非数字非.字符
if(/^0+/) //清除字符串开头的0
num = num.replace(/^0+/, '')
if(!/\./.test(num)) //为整数字符串在末尾添加.00
num += '.00'
if(/^\./.test(num)) //字符以.开头时,在开头添加0
num = '0' + num
num += '00' //在字符串末尾补零
num = num.match(/\d+\.\d{2}/)[0]
}
//测试
getFloatStr('0000.1') //0.10
getFloatStr('qwe') //0.00
getFloatStr('256') //256.00
</script>
js的变量没有严格的类型,在js中0表示整数0,“00”表示字符串。在0 == “00”比较的时候,会将“00”转换成整型在比较,转换结果就是0 == 0,即true。
这么判断没有问题,但不推荐,在阅读代码、修改代码等方面都会有影响