如何修改下面这段js,从而改为可以输入负数。

披着虎皮的石头 2011-11-21 08:32:49
JS控制输入框只输入数字类型

<tr bgcolor="#FFFFFF" >
<td>报价金额</td>
<td><input type="text" name="PRICE" id="PRICE" class="text_8" style="width:120px;" onkeyup="clearNoNum(this)" /><span style="color:red;" mce_style="color:red;">币种:RMB(请填写数字类型)</span></td>
</tr

function clearNoNum(obj)
{
//先把非数字的都替换掉,除了数字和.
obj.value = obj.value.replace(/[^\d.]/g,"");

//必须保证第一个为数字而不是.
obj.value = obj.value.replace(/^\./g,"");

//保证只有出现一个.而没有多个.
obj.value = obj.value.replace(/\.{2,}/g,".");

//保证.只出现一次,而不能出现两次以上
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");

//限制金额小数点位数为两位
if (/^\d+\.?\d{0,2}$/.test(obj.value)) {
obj.value = obj.value;
} else {obj.value = obj.value.substring(0, obj.value.length - 1);}
}
...全文
272 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
小石子29 2011-11-22
  • 打赏
  • 举报
回复
function clearNoNum(obj)
{
var fh='';
if(obj.value.indexOf('-')==0){
fh='-';
}
//先把非数字的都替换掉,除了数字和.
obj.value = obj.value.replace(/[^\d.]/g,"");

//必须保证第一个为数字而不是.
obj.value = obj.value.replace(/^\./g,"");

//保证只有出现一个.而没有多个.
obj.value = obj.value.replace(/\.{2,}/g,".");

//保证.只出现一次,而不能出现两次以上
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");

//限制金额小数点位数为两位
if (/^\d+\.?\d{0,2}$/.test(obj.value)) {
obj.value = obj.value;
} else {
obj.value = obj.value.substring(0, obj.value.indexOf(".")+3);
}
obj.value=fh+obj.value;
fh='';
}
  • 打赏
  • 举报
回复
//凭证不允许输入负数,负数可以转化为借贷的相反值。
function clearNoNum(obj)
{
//先把最前面的负号
var fh ='';
if(obj.value.indexOf('-') ==0){
fh ='-';
}

//先把非数字的都替换掉,除了数字和.
obj.value = obj.value.replace(/[^\d.]/g,"");

//必须保证第一个为数字而不是.
obj.value = obj.value.replace(/^\./g,"");

//保证只有出现一个.而没有多个.
obj.value = obj.value.replace(/\.{2,}/g,".");

//保证.只出现一次,而不能出现两次以上
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");

//限制金额小数点位数为两位
if (/^\d+\.?\d{0,2}$/.test(obj.value)) {
obj.value = obj.value;
} else {obj.value = obj.value.substring(0, obj.value.length - 1);}

obj.value =fh +obj.value;

//如果允许只输入负号:-,就设为空值。
//因为如果允许只输入符号:-,用户可能只输入负号,就不输入数字,就会报错。
//所以如果要输入负数,要先输入数字,最后在数字最前面加上负号。
if ((obj.value) =="-")
obj.value ="";
}

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧