求一个javascript正则表达式,匹配正数(包含小数,位数不限但不包含0)

Cyanapple_wen 2010-03-22 04:32:05
在网上找了一个正则表达式:^[0-9]+[\.]?[0-9]+$ 但是在使用时发现它不能输入单个整数(1、2、3、4、5、6、7、8、9)。其他的都可以满足。要求可以正确识别:0.123456789;1;123.456(小数位数不限制)
...全文
1560 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
老俊说技术 2010-08-14
  • 打赏
  • 举报
回复

function isDigit(s)
{
var patrn=/^([1-9]\d*)(\.{0,1}\d*[1-9])?$/;
if (patrn.test(s)) return true
return false;
}

这个可以同时判断整数和小数
Cyanapple_wen 2010-03-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 johnln271 的回复:]
这个可以
^(([0-9]+[\.]?[0-9]+)|[1-9])$
[/Quote]
不错,这个是可以了,谢谢哈。同时也感谢上面两位的回答。
johnln271 2010-03-23
  • 打赏
  • 举报
回复
这个可以
^(([0-9]+[\.]?[0-9]+)|[1-9])$
Cyanapple_wen 2010-03-23
  • 打赏
  • 举报
回复
有没有更好的正则表达式呢?要排除0,但要能输入零点几的小数,也要能输入个位数的整数和任意小数,不能输入小于或等于0的数字。要数值型的。
Cyanapple_wen 2010-03-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 plglenn36 的回复:]
^([0-9]+[\.]?[0-9]+|\d+)$
try it
[/Quote]
这样也不能把0排除在外。虽然可以用判断来实现,但我想最好有一个正则可以实现我要求的那些匹配。
plglenn36 2010-03-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 cyanapple_wen 的回复:]
^[0-9]+[\.]?[0-9]+$
[/Quote]
^([0-9]+[\.]?[0-9]+|\d+)$
try it
liaoliaoss 2010-03-22
  • 打赏
  • 举报
回复
alert(/^([1-9]\d*|0)(\.\d*[1-9])?$/.test('1.11123123123')) //true
如果你显示的是false 我也不知道为什么.......
Cyanapple_wen 2010-03-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cyanapple_wen 的回复:]
引用 1 楼 liaoliaoss 的回复:
/^([1-9]\d*|0)(\.\d*[1-9])?$/
[/Quote]
为什么只能匹配一位小数呢?我想要匹配任意的小数位数,还有我想不要匹配0,但现在这个是可以匹配0的。但要匹配大于0的小数比如:0.0112233等。
Cyanapple_wen 2010-03-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liaoliaoss 的回复:]
/^([1-9]\d*|0)(\.\d*[1-9])?$/
[/Quote]
为什么只能匹配一位小数呢?我想要匹配任意的小数位数
liaoliaoss 2010-03-22
  • 打赏
  • 举报
回复
/^([1-9]\d*|0)(\.\d*[1-9])?$/
一个不错的数字的正则表达式验证的电子参考书。内容预览: 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 验证非零的正整数:^\+?[1-9][0-9]*$ 验证非零的负整数:^\-[1-9][0-9]*$ 验证非负整数(正整数 + 0) ^\d+$ 验证非正整数(负整数 + 0) ^((-\d+)|(0+))$ 验证长度为3的字符:^.{3}$ 验证由26个英文字母组成的字符串:^[A-Za-z]+$ 验证由26个大写英文字母组成的字符串:^[A-Z]+$ 验证由26个小写英文字母组成的字符串:^[a-z]+$ 验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$ 验证由数字、26个英文字母或者下划线组成的字符串:^\w+$ 验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。 验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+ 验证汉字:^[\u4e00-\u9fa5],{0,}$ 验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$ 验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。 验证身份证号(15位或18位数字):^\d{15}|\d{}18$ 验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12” 验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。 整数:^-?\d+$ 非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$ 正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ 浮点数 ^(-?\d+)(\.\d+)?$ ×××××××××××××××××××××××××××××××××××××× 以下未经测试,请验证后使用 1.只能输入数字和英文的: 2.只能输入数字的: 3.只能输入全角的: 4.只能输入汉字的: 5.邮件地址验证: var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT)$" var re = new RegExp(regu); if (s.search(re) != -1) { return true; } else { window.alert ("请输入有效合法的E-mail地址 !") return false; } 6.身份证: "^\\d{17}(\\d|x)$" 7.17种正则表达式 "^\\d+$"  //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$"  //正整数 "^((-\\d+)|(0+))$"  //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$"  //负整数 "^-?\\d+$"    //整数 "^\\d+([url=file://.//d+)?$]\\.\\d+)?$[/url]"  //非负浮点数(正浮点数 + 0) "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数 "^((-\\d+([url=file://.//d+)?)%7C(0+(//.0+)?))$]\\.\\d+)?)|(0+(\\.0+)?))$[/url]"  //非正浮点数(负浮点数 + 0) "^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数 "^(-?\\d+)([url=file://.//d+)?$]\\.\\d+)?$[/url]"  //浮点数 "^[A-Za-z]+$"  //由26个英文字母组成的字符串 "^[A-Z]+$"  //由26个英文字母的大写组成的字符串 "^[a-z]+$"  //由26个英文字母的小写组成的字符串 "^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串 "^\\w+$"  //由数字、26个英文字母或者下划线组成的字符串 "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址 "^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url ============================================= 1.取消按钮按下时的虚线框   在input里添加属性值 hideFocus 或者 HideFocus=true 2.只读文本框内容 在input里添加属性值 readonly 3.防止退后清空的TEXT文档(可把style内容做做为类引用)    4.ENTER键可以让光标移到下一个输入框    5.只能为中文(有闪动)    6.只能为数字(有闪动)    7.只能为数字(无闪动)    8.只能输入英文和数字(有闪动)    9.屏蔽输入法    10. 只能输入 数字,小数点,减号(-) 字符(无闪动)    11. 只能输入两位小数,三位小数(有闪动)    "^\\d+$"  //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$"  //正整数 "^((-\\d+)|(0+))$"  //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$"  //负整数 "^-?\\d+$"    //整数 "^\\d+([url=file://\\.\\d+)?$]\\.\\d+)?$[/url]"  //非负浮点数(正浮点数 + 0) "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数 "^((-\\d+([url=file://\\.\\d+)?)|(0+(\\.0+)?))$]\\.\\d+)?)|(0+(\\.0+)?))$[/url]"  //非正浮点数(负浮点数 + 0) "^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数 "^(-?\\d+)([url=file://\\.\\d+)?$]\\.\\d+)?$[/url]"  //浮点数 "^[A-Za-z]+$"  //由26个英文字母组成的字符串 "^[A-Z]+$"  //由26个英文字母的大写组成的字符串 "^[a-z]+$"  //由26个英文字母的小写组成的字符串 "^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串 "^\\w+$"  //由数字、26个英文字母或者下划线组成的字符串 "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址 "^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url "^((\d{1,3}(,\d{3})*?)|\d+)(\.\d+)?$ //带逗号的decimal 具体的使用 var mm=/^\d+$/; function formCheck() { if(!mm.test(document.f1.PropertyAmount.value)) { alert("请输入合法的数字"); document.f1.PropertyAmount.focus(); return false; } return true; } 另:JS 验证输入数字是否为正整数用例: function checkGiveNum(){ if(!checkNum(trimString(document.getElementById("giveNumber").value))){ alert('您只能输入正整数!'); document.getElementById("giveNumber").value = ""; } } function checkNum(str){ //如果为空,则通过校验 if(str == ""){ return true; } if(/^\+?[1-9][0-9]*$/.test(str)){ return true; }else{ return false; } }

87,997

社区成员

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

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