首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JS 正则表达式有关问题,保留一位小数,不四舍五入,如果是整数就匹配整数本身

2012-04-24 
JS 正则表达式问题,保留一位小数,不四舍五入,如果是整数就匹配整数本身.匹配这样的:保留小数点后一位,不四

JS 正则表达式问题,保留一位小数,不四舍五入,如果是整数就匹配整数本身.
匹配这样的:保留小数点后一位,不四舍五入~同时允许输入1,2,222,这样的~
就是1,2,234,234.234234,1234.1234
转换成1,2,234,234.2,1234.1
  替换前 > 替换
  1 > 1, 
  2 > 2, 
  2.234 > 2.2 , 
 234.264234 > 234.2 ,

可以说是:整数就是本身,有小数的就是保留一位,不四舍五入
(^\d+\.?\d)原先我自己写的,但是发现不能匹配1,2这个的个数~


[解决办法]

JScript code
<script>//var a=/^(([0-9])|(1[0-2])|(2[0-3])):[0-5][0-9]$///alert(a.test("8:30"))//var a=/^(([0-9])|(1[0-2])|(2[0-3])):[0-5][0-9]$///alert(a.test("0:00"))//var a=/^(([0-9])|(1[0-2])|(2[0-3])):[0-5][0-9]$///alert(a.test("23:59"))//var b="123.4"//var c="123.4"function mm(m){alert(m.replace(/^((\d+?)(\.?)(\d+?))$/,function (a,b,c,d,e){ if(d=="."){ return c+"."+e.substr(0,1)}else{ return b}  }))}mm("123.4545")mm("123")</script>
[解决办法]
<script>
var s="1,2,234,234.264234,1234.1234";
alert(s.replace(/(\.\d)\d+/ig,"$1") )//不要四舍五入的
alert(s.replace(/\d+\.\d+/ig,a))//要四舍五入的
function a(v){
return ((v*1).toFixed(1));
}

</script>

热点排行