function isUSD(str) { let rex = /^\$(\d{1,3})(,\d{3})*(\.\d{2})?$/; return rex.test(str); } /^$表示以$符开头 \d{1,3} 为当数字小于三位时 ,\d{3}* 搭配前面的小于三位,(总位数大于三位时,后面的数字必定是三位),*表示匹配0次或多次 .\d{2}?$ 表示以小数点开头,后跟两个数字的结尾,可以出现一次或0次.