前几天看到了一个面试题
var str="我有$2,200,200.20这么多钱";
请用js计算出我到底有多少钱?
输出要求:输出的为Number类型的数字,而且要考虑通用的情况。
我个人的想法是这样的,就是正则把汉字过滤掉之后然后把新的数组中的数字转化成Number类型,但是google了也学了一晚上的正则,可是还是写不对。
var text="我有$2,200,200.200这么多钱";
var matches=text.exec(/^(([1-9]d*)|0)(.d{1,2})?$/);
console.log(matches[0]);
前面的只是尝试的把汉字过滤掉,可是这里就出了问题。
现在一脸懵逼,求大佬指点。
我补充一下把,面试官可能考的不会这么简单,他可能想考察你是否能正确匹配千位分隔符表示法的数字。楼上的答案如果字符串其他地方还出现数字就会出错。比如:
观察这种数字表示法,逗号后面一定有三个数字,小数点后面一定有数字,于是,对应的正则应该是这样的:
然后我建议的答案是(可能啰嗦点):