您的位置:首页 > 职场人生

为数字千分位加点 -- Web前端面试经验

2015-04-19 09:02 337 查看
这道题目的题干是:

给一个字符串数字,让你在它的千分位加点。

题目很简单,很多人可能很快就能想出来答案,我也是的:

将字符串从右往左读,读入一个新的字符串,读三个,如果下一个还有数字,放一个“,”。然后就跟面试官说了。

答案我先不揭晓,请读者先自己想想看:会不会有坑?有哪些隐形的需求要考虑到?字符串处理能不能用RegExp?

。。。。。。。。。

好,如果读者想完了,就往下看吧。

这儿有3个隐性的需求

1,确定是数字(用isNaN来判断)

2,考虑负数情况

3,考虑小数的情况

所以面试大公司,很注重的是你的思维严密性

下面给读者一个用正则处理的方法

var string=  "12311341234234.123";
var temp = string.split('.');//考虑小数
var toDo;//用来读取整数部分
if(temp.length==2)
//如果是小数
toDo = temp[0];
else
//如果不是小数
toDo = temp;

var newOne = "";//当作返回值

/*
/\d{3}$/ 匹配执行匹配操作的字符串最后3位的数字,有点拗口,读两遍就能看懂
*/
while(toDo.match(/\d{3}$/)){
var mat = toDo.match(/\d{3}$/);
newOne = newOne.concat(","+mat[0]);
console.log(newOne);
toDo = toDo.slice(0,mat.index);
}
newOne = toDo.concat(newOne);
console.log(newOne+"."+temp[1]);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: