虽然超时了,但是主要是分享一下不用正则表达式的方法
function isUSD(str) {
// 判断有无$符
if (/^\\$/.test(str)) {
// 取出$后面的数字\n
var allStr = str.split('$')[1]
}
else {
return false
}
// console.log(arr)
// 以.分隔,提取小数部分
var xiaoshuStr = allStr.split('.')
// 如果小数部分存在,并且小数部分的长度只能为2,才会执行下面的话
if (xiaoshuStr[1] && xiaoshuStr[1].length !== 2) {
return false
}
// 以,分隔,我们需要判断字符数组,长度为n,我们要判断前n-1个字符数组,是否长度超过3,并且除了第一个,中间的n-2的字符数组长度都必须为3
var zhengshuStr = xiaoshuStr[0].split(',')
// console.log(zhengshuStr)
// console.log(entityStr[0].length)
// 整数部分数组第一部分只需要验证长度是否大于3,并且不为0即可 if (zhengshuStr[0].length > 3 || zhengshuStr[0].length === 0) { return false
}
// 整数部分剩余部分必须等于3
for (let i = 1; i < zhengshuStr.length; i++) {
if (zhengshuStr[i].length !== 3) {
return false
}
}
return true
}