还是正则,不会就很尴尬。。。
好尴尬本地测试过了,提交没过
function isUSD(str) {
return /^\$(\d|([1-9]\d)|([1-9]\d{2}))(\,\d{3})*\.\d{2}$/.test(str);
}
不通过 您的代码已保存 答案错误:您提交的程序没有通过所有的测试用例 case通过率为93.33%
测试用例:
console.log(isUSD('$20,933,209.93')); //true
console.log(isUSD('$1,023,032.03')); //true
console.log(isUSD('$2.03')); //true
console.log(isUSD('$3,432,12.12')); //false
console.log(isUSD('$34,344.3')); //false
说明还有没有匹配上的,到底剩下的6.67%是个啥玩意?想不出测试用例真头大。
想明白了,会不会是没有小数点后面的两位即为整时,卧槽,特么神坑,题目测试用例给说明一下啊,折磨我好久。。。。。
function isUSD(str) {
return /^\$(\d|([1-9]\d)|([1-9]\d{2}))(\,\d{3})*(\.\d{2})?$/.test(str);
}
运行时间:1530ms,占用内存:83772k
与卿可津
首位可以零,或者首位不能为零,我看很多人都没考虑首位不能为零的问题。
function isUSD(str) {
var re = /^\$([1-9]\d{0,2}(,\d{3})*|0)(\.\d{2})?$/;
return re.test(str);
}