[已解决问题] JS的正则表达式问题:保留一位小数,不四舍五入
提问时间: 2007-12-24 16:18
悬赏分:20 浏览:871 次
匹配这样的:保留小数点后一位,不四舍五入~同时允许输入1,2,222,这样的~
就是1,2,234,234.234234,1234.1234
转换成1,2,234,234,2,1234.1
(^\d+\.?\d)原先我自己写的,但是发现不能匹配1,2这个的个数~
所以请高手赐教~


提问者:marxTen - 初学一级

问题补充:替换前 > 替换
1 > 1, 2 > 2, 2.234 > 2.2 , 234.234234 > 234.2 ,

可以说是:整数就是本身,有小数的就是保留一位,不四舍五入

最佳答案
(\d)+(\.+\d)?
---
这个完成符合你的要求:
1.2222,匹配为:1.2
asdf1234.1234,匹配为:1234.1
2007/12/25 17:30:29 回答者:没剑
其它回答(5)
是不是这样的
^\d+(\.\d)?
6个月前   回答者:一水先生 - 初学一级
var oldValue = "123.456";
var match = /^(\d+(\.\d)?)(\d*)$/;
var ok = match.test(oldValue);
var newValue = RegExp.$1;
alert(newValue);

newValue是新的值:123.4
6个月前   回答者:Anders Cui - 小虾三级
試試這個:
\d(\d+|\,?)+\.?\d?
6个月前   回答者:陳龑 - 菜鸟二级
http://regexlib.com/Default.aspx
上面有许多 
我用正则表达式 基本上全是从这上面搜的。。
6个月前   回答者:张荣华 - 小虾三级
在这里有一个投机的方式,通过正则直接去取小数的第一位
楼主参考一下正则:
\d+(\.?\d)?
6个月前   回答者:≮羊羔<>羔羊≯ - 菜鸟二级
评论
6个月前   marxTen :
^\d+(\.\d)?
这个匹配不出来1.2222这样的~
我是用RegexTester.exe测试的~
6个月前   marxTen :
To:Anders Cui
你的方法不能判断asdf1234.1234这样的~
这样的明显是错误的~
只能输入数字~
还请多多帮忙~
6个月前   Anders Cui :
@marxTen
忘了处理边界, 现在应该好了 :)

6个月前   一水先生 :
楼主不是要一位小数吗
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除