请高手指点货币类型的验证
我需要验证货币类型:
希望能指点两种方式,
一、是用正则表达式
二、是用验证,但能对输入进行一定的修改或判断
请大家多指点!感谢!
问题点数:100、回复次数:8Top
1 楼lz485078(冷)回复于 2002-11-17 13:27:42 得分 0
难到没人能解决这样的问题?
又不是有多高难度?
CSDN上就没人会?
郁闷!!!Top
2 楼Lostinet(Hello)回复于 2002-11-17 13:44:24 得分 0
把你看过的货币写法全部帖上来撒..Top
3 楼lz485078(冷)回复于 2002-11-18 10:26:05 得分 0
既然无人解决 只好被迫结贴
超级郁闷Top
4 楼qiushuiwuhen(秋水无恨)回复于 2002-11-18 13:51:42 得分 0
你去控制面板-〉区域设置就知道有多少种货币写法了
单单就¥123,456,789.00做个正则,可能还不充分
<script>
function check(val){
return /^¥?\d{1,3}(,\d{3})*\.\d{2}$/.test(val)
}
alert(check("¥123.00"))
alert(check("12,345.00"))
alert(check("1234.00"))
</script>Top
5 楼Lostinet(Hello)回复于 2002-11-18 14:00:42 得分 0
那还不麻烦,除了数值还要包含币种。。。~~Top
6 楼lz485078(冷)回复于 2002-11-18 18:04:26 得分 0
晕 没那么麻烦
主要能验证 5.00 45.00 就可以!不需要那么复杂!
主要是货币中有个点 点后面是两位 主要我技术不好写不出来
我看 比时间验证似乎还容易
主要最好能纠正一般错误 不让用户输入非法符号就可以
我写的函数 字母和数字组合就认不出来了
最好是 函数验证!正则表达式没有也可Top
7 楼JK_10000(JK)回复于 2002-11-18 18:53:03 得分 80
<input type=text onblur="checkMoneyInput(this);">
<script>
function checkMoneyInput(obj,min,max) //作用是将输入变成Number(10,2)格式,默认范围是非负。
{
obj.value=obj.value.replace(/ /g,""); //去空格
if (obj.value=="") return false;
if (obj.value.substr(0,1)==".") obj.value="0"+obj.value;
if (obj.value.substr(0,2)=="-.") obj.value=obj.value.replace("-.","-0.");
var r, re;
var s = obj.value ;
var theMin=-0.0000001;
var theMax=10000000000;
if (min!=null) theMin=min;
if (max!=null) theMax=max;
if (s.length==0) return false;
re = /-{0,1}\d{1,10}\.{0,1}\d{0,2}/i;
r = s.match(re); //取数
if (r==null)
{
obj.value="";
alert("!!!!请注意:\n您刚才输入的数值不正确,我们已进行了清除。");
obj.focus();
return false;
}
if ((r>=theMax)||(r<=theMin))
{
obj.value="";
alert("!!!!请注意:\n您刚才输入的数值超出允许范围,我们已进行了清除。");
obj.focus();
return false;
}
if ( r!=s)
{
obj.value=r;
alert("!!!!请注意:\n您刚才输入的数值不正确,我们已进行了修改。");
obj.select();
obj.focus();
return false;
}
if((/\./i).test(r)) r=r+"0000";
else r=r+'.0000';
obj.value=r.match(re);
}
</script>Top
8 楼qiushuiwuhen(秋水无恨)回复于 2002-11-19 09:01:57 得分 20
<script>
function check(val){
return /^\d+\.\d{2}$/.test(val)
}
alert(check("5.00"))
alert(check("45.00"))
alert(check("a5.00"))
</script>
Top




