懂javascript或jquery的进来

如何做到当用户输入一个数字例如156666666自动转换成156,666,666。... 如何做到当用户输入一个数字例如156666666自动转换成156,666,666。 展开
 我来答
walter__
2012-03-06 · 超过28用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:83.7万
展开全部
var str ='156666666';
var ss[]=str.split();//字符串转数组
var show;
for(var i=0;i<str.length;I++){//数组循环
show+=ss[i];
if(i%3==0){//每三位加困戚一蚂薯个逗号
show+=",";
}
alert(show);
}

以上大体一个思路,没有实际测试,应该能解决你的问汪物陵题。
追问
undefined156666666,undefinedundefinedundefined,undefinedundefinedundefined,undefinedundefined
输出结果
追答
代码我调了一下,好用了,不过下面循环方向反了,应该从字符串结尾开始计数,你自己修改下吧

var str ='156666666';
var ss=str.split('');//字符串转数组
var show="";
var m;
for(var i=0;i
kevinxiong
2012-03-06 · 超过30用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:112万
展开全部
给派咐正你写了一个函数
function formatNumber(num){
var str = num.toString();
var afterFormat = ''
for(var i=0;i<str.length;i++){
if(i!=0 && (i)%3 == 0){
afterFormat=','+afterFormat
}
afterFormat=str.substr(str.length-i-1,1)+afterFormat
}
return afterFormat
}
你只要把你需要格式化的数字传进去就行了
比如说你要简棚格式化156666666
那么你这样调用
var afterFormat = formatNumber(156666666);
这样afterFormat 就是你想要的156,666,666;

如果你想要在用户输入的时候直接转换
那么你可以监听用户的keyup事件
当keyup执行的时候调用上面的那个方法,并将转换成功后的值写回输入框中尘悔即可
追问
用keyup有个不好的地方就是如果别人是复制过来的就侦听不到了。。。。。
追答
那就监听value值的变化,其实这种的解决方式还是蛮多的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xunianchong
2012-03-06 · 超过20用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:25.4万
展开全部
思路是这样的,乱察前两次取前三位加,然后拼接字符串.
//若这个团拍数字是输入完后处理. 如;onblur事件塌陪羡
function f_a(obj)
{var str;
str=obj.substring(0,2);
str+=","+obj.substring(3,6);
str+=","+obj.substring(7,9);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友44a4513
2012-03-06 · 超过52用户采纳过TA的回答
知道小有建树答主
回答量:199
采纳率:0%
帮助的人:94.8万
展开全部
屏蔽除数字键以外的键盘输入,每输入3次,value=value+“,”;
追问
那如果别人复制过来呢,不合适了吧。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式