求实数正则表达式

eceg 2009-06-16 09:44:06
求实数正则表达式
例如:
合法:
0, 0.001, 5415.545, 5556, 68.00
-0.343, -3454, -4545.4545
非法:
0.00, 3a, -454a,-0
网上找了一些,都不是很满意.
谢谢.


...全文
396 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
eceg 2009-06-16
  • 打赏
  • 举报
回复
谢谢各位
highreport 2009-06-16
  • 打赏
  • 举报
回复
/**
* 是否是整型类型 整型表示无小数部分的数字
* 十进制表示法: [0-9]
* 八进制表示法: [0][0-7]
* 十六进制表示法: [0x][0-9A-F]
*
* 发布日期:2007-09-13
*
* 参数:无
*
* 返回值:true/false
*
* 说明:指数表示数字即使可以换成整型也是作为浮点数类型
*/
String.prototype.isInteger = function()
{
return /^[\+\-]?(?:0x[0-9a-f]+|0[0-7]+|[0-9]+)$/i.test(this);
}
/**
* 是否是浮点类型 浮点型表示有小数部分的数字
* [digits][.digits][(E|e)[(+|-)]digits]
*
* 发布日期:2007-09-13
*
* 参数:无
*
* 返回值:true/false
*
* 说明:指数表示数字即使可以换成整型也是作为浮点数类型
*/
String.prototype.isFloat = function()
{
// 补2007-11-13 增加空字符串处理
return /^[\+\-]?(\d+|\d*(?:\.\d+){1})(?:[eE][\+\-]?\d+)?$/.test(this);
}
/**
* 是否是数字类型 数字类型包括整型类型和浮点数类型
*
* 发布日期:2007-09-13
*
* 参数:无
*
* 返回值:true/false
*/
String.prototype.isNumber = function()
{
return this.isInteger() || this.isFloat();
}
rainsome 2009-06-16
  • 打赏
  • 举报
回复

//修改一下
var regex =/^-?(?!0+\.?0+$)(?=0(?:\.\d+)$)\d+(?:\.\d+)?$/g;
monexus 2009-06-16
  • 打赏
  • 举报
回复
LZ的0,0.00,-0在一个正则里是无法区分的

function chk(num) {
return (/^-?\d+(?:\.\d+)?$/.test(num) && !/^(?:-0+(?:\.0+)?|0+\.0+)$/.test(num));
}
chk('0') // true
chk('0.001') // true
chk('5415.545') // true
chk('5556') // true
chk('68.00') // true
chk('-0.343') // true
chk('-3454') // true
chk('-4545.4545') // true
chk('0.00') // false
chk('3a') // false
chk('-454a') // false
chk('-0') // false
rainsome 2009-06-16
  • 打赏
  • 举报
回复
var regex=/^(?!\-?0+\.?0+$)\-?(?:(?:0(?=(?:\.\d+)|$)|(?:[1-9]))\d*(?:\.\d+)?)$/g;

[Quote=引用 3 楼 eceg 的回复:]
引用 2 楼 Rainsome 的回复:
JScript codevar regex=/^(?!\-?0+\.?0*$)\-?(?:(?:0(?=\.\d+)|(?:[1-9]))\d*(?:\.\d+)?)$/g;

0.00, -0, -0.00都不合法
但0的时候,也成了不合法的.

[/Quote]
eceg 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Rainsome 的回复:]
JScript codevar regex=/^(?!\-?0+\.?0*$)\-?(?:(?:0(?=\.\d+)|(?:[1-9]))\d*(?:\.\d+)?)$/g;
[/Quote]
0.00, -0, -0.00都不合法
但0的时候,也成了不合法的.
rainsome 2009-06-16
  • 打赏
  • 举报
回复
var regex=/^(?!\-?0+\.?0*$)\-?(?:(?:0(?=\.\d+)|(?:[1-9]))\d*(?:\.\d+)?)$/g;
wackyboy 2009-06-16
  • 打赏
  • 举报
回复

/^-?(?:0|[1-9]\d*)(?:\.\d+)?$/

87,901

社区成员

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

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