JS验证正数字,正则的一种正数规则1
JS中有一个验证数字的方法,就是!isNAN。NAN是非数字,!在JS里表示不是的意思,所以这个!isNAN就是判断不是非数字,也就是是数字。
验证某个字符串是否是数字格式是:
!isNaN(字符串)
经过测试,该方法可以识别整数浮点数等都可以,但是如下面的测试,009.225这种也会被识别为是数字,但是一般小数不会这样写,这样写不太符合规则。
这里试验数字规则的一种,这里分了两种情况,用竖线分隔,匹配任意一种情况即可。
第一种规则:
开头是1-9任意一个,后面跟着0-9任意数量 (零个1个或多个),然后是一个小数点,后面 可以跟着0-9任意数量(零个1个或多个)。
这样避免了009.225这种情况的出现,第一位必须不是零。
第二种规则:
开头是一个0,然后是一个小数点,后面跟着0-9任意数量 (零个1个或多个)。
这种就是小于1的一些小数,他们可以以0开头,紧跟着小数点。
PS补充:
1.由于点.在正则里有含义,所以需要用转义字符\转义下。
2.为了避免前后有其他不符合的内容,加开始和结尾。
3.关于开始结尾中间的 区域,()圆括号,由于里面有两种情况 ,用竖线分隔,圆括号可以括前面的整体,也可以括整个整体。该文测试后面有个关于或和圆括号的测试。
这里面还有很多没考虑到的情况,写正则要考虑规则和所有不该匹配到的情况,之类可以判别一些情况,有些情况还不行,例如.后面是任意个数数字,但是点后面没有数字这种情况不合理,所以应该修改一下,后面改成+号比较合适,小数点后至少有一位数字,此文只是测试用,后期博文(JS正则验证数字格式2)会逐步修改。
测试代码:
<a href="javascript:prn_p1()">点击获取</a><br>
<script language="javascript" type="text/javascript">
var LODOP; //声明为全局变量
function prn_p1(){
//NAN是非数字,!isNAN用于判断不是非数字,也就是数字。
console.log("a,是否是数字:"+!isNaN("a"));
console.log("12,是否是数字:"+!isNaN("12"));
console.log("9.335,是否是数字:"+!isNaN("9.335"));
console.log("009.335,是否是数字:"+!isNaN("009.335"));
console.log("a009.335,是否是数字:"+!isNaN("a009.335"));
console.log("009..335,是否是数字:"+!isNaN("009..335"));
console.log("----------分隔线1------");
//以数字开头,以数字结尾,任意位数的数字
console.log("12,结果:"+/^[0-9]*$/.test("12"));
console.log("9.335,结果:"+/^[0-9]*$/.test("9.335"));
console.log("0012,结果:"+/^[0-9]*$/.test("0012"));
console.log("0012,结果:"+/^\d*$/.test("0012")); //\d代表数字
console.log("----------分隔线2------");
console.log("12,结果:"+/^[0-9]*\.?[0-9]*$/.test("12"));//没有.的数字组合
console.log("9.335,结果:"+/^[0-9]*\.?[0-9]*$/.test("9.335"));//有一个.的数字组合
console.log("009.335,结果:"+/^[0-9]*\.?[0-9]*$/.test("009.335"));//有一个.的数字组合
console.log("9..335,结果:"+/^[0-9]*\.?[0-9]*$/.test("9..335"));//有两个点的数字组合
console.log("----------分隔线3------"); console.log("90345.300350,结果:"+/^[1-9][0-9]*\.?[0-9]*$/.test("90345.300350"));//非零开头的小数
console.log("009.3035,结果:"+/^[1-9][0-9]*\.?[0-9]*$/.test("009.3035"));//零在第一位的小数,第二位不是点
console.log("90335,结果:"+/^[1-9][0-9]*\.?[0-9]*$/.test("90335"));//非零开头的整数
console.log("0.933050,结果:"+/^[0]\.[0-9]*$/.test("0.933050"));//零开头的,第二位必须是点 console.log("----测试----");
console.log("0.933050,结果:"+/^([1-9][0-9]*\.?[0-9]*)|(0\.[0-9]*)$/.test("0.933050"));//零开头的小数
console.log("909.933050,结果:"+/^([1-9][0-9]*\.?[0-9]*)|(0\.[0-9]*)$/.test("909.933050"));//非零开头的小数
console.log("zx0.933050rt,结果:"+/^([1-9][0-9]*\.?[0-9]*)|(0\.[0-9]*)$/.test("zx0.933050rt"));//不是以数字开头结尾
console.log("0..978,结果:"+/^([1-9][0-9]*\.?[0-9]*)|(0\.[0-9]*)$/.test("0..978"));//有多个小数点的 console.log("909.933050,结果:"+/^([1-9]\d*\.?\d*)|(0\.\d*)$/.test("909.933050"));//\d代替[0-9]
console.log("0.933050,结果:"+/^([1-9]\d*\.?\d*)|(0\.\d*)$/.test("0.933050")); console.log("---测试开始结尾括号和或的位置---");
console.log("0.933050,结果:"+/^([1-9]\d*\.?\d*|0\.\d*)$/.test("0.933050"));
console.log("909.933050,结果:"+/^(0\.[0-9]*|[1-9][0-9]*\.?[0-9]*)$/.test("909.933050"));//非零开头的小数
console.log("结果是:"+/^[ab]|[cd]$/.test("b"));
console.log("结果是:"+/^[ab]|[cd]$/.test("c"));//整体不加括号,里面含有或
console.log("结果是:"+/^([ab]|[cd])$/.test("c"));//整体加括号
};
</script>
图示:

JS验证正数字,正则的一种正数规则1的更多相关文章
- js验证是否是数字,支持正负数小数
js验证是否是数字,支持正负数小数. function isShuzi(str){ //var regExp =/[0-9]$/;//不支持小数 var regExp =/^\-?[0-9]+(.[0 ...
- 记录下 js各种证件的正则验证
身份证 /(^\d{15}$)|(^\d{17}([0-9]|X)$)/ 护照 /^[a-zA-Z0-9]{3,21}$/ /^(P\d{7})|(G\d{8})$/ 军官证或士兵证 ...
- js验证是否为数字的总结(转)
作者: 字体:[增加 减小] 类型:转载 时间:2013-04-14我要评论 js验证是否为数字的总结,需要的朋友可以参考一下 js验证是否为数字,最简单的方法: isNaN函数的使用: functi ...
- js验证input输入框(字母,数字,符号,中文)
[javascript]代码库 <h1>js验证输入框内容</h1> <br /> <br /> 只能输入英文 <input type=" ...
- js中对数字进行正则判断
<script type="text/javascript"> function SubmitCk(num) { var reg = /^([a-zA-Z0-9]+[_ ...
- js字符串转换为数字的三种方法。(转换函数)(强制类型转换)(利用js变量弱类型转换)
js字符串转换为数字的三种方法.(转换函数)(强制类型转换)(利用js变量弱类型转换) 一.总结 js字符串转换为数字的三种方法(parseInt("1234blue"))(Num ...
- 【面试题】JS使用parseInt()、正则截取字符串中数字
JS使用parseInt()和正则截取字符串中数字 点击打开视频讲解更加详细 parseInt() 函数 定义和用法 parseInt() 函数可解析一个字符串,并返回一个整数. 当参数 radix ...
- js 验证数字的正则表达式集
<script type="text/javascript"> function validate(){ var reg = new RegExp( ...
- JS验证数字
//1.验证数字 var reg = new RegExp("^[0-9]*$"); //var reg = /^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+ ...
随机推荐
- Flume源码更改
1.源码更改场景:如果使用 0.8 版本 Kafka 并配套 1.6 版本 Flume,由于 Flume 1.6 版本没有Taildir Source 组件,因此,需要将 Flume 1.7 中的 T ...
- SpringMVC的拦截器和数据校验
SpringMVC拦截器 什么是拦截器:Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理.例如通过拦截器可以 ...
- virtualbox下装ubuntu全屏问题
有两种解决方法: 1.安装增强功能. 2.使用命令: sudo apt-get install virtualbox-guest-dkms 之后需要重启虚拟机,修改分辨率.
- 2:tomcat配置优化
一.Tomcat配置优化 1.Tomcat配置调优 主要调优内容 增加最大连接数 调整工作模式 启用gzip压缩 调整JVM内存大小 作为Web时,动静分离 合理选择垃圾回收算法 尽量使用较新JDK版 ...
- 正确使用Java读写锁
JDK8中引入了高性能的读写锁StampedLock,它的核心思想在于,在读的时候如果发生了写,应该通过重试的方式来获取新的值,而不应该阻塞写操作.这种模式也就是典型的无锁编程思想,和CAS自旋的思想 ...
- 未公开函数 NtQuerySystemInfoMation 遍历进程信息,获得进程的用户名(如: system,Admin..)
目录 遍历进程用户名 代码例子 遍历进程用户名 代码例子 #include <windows.h> #include <iostream> #include <COMDE ...
- (4)Go程序结构和流程控制
Go程序主要由以下几部分组成:(具体可以参考2选择结构中的实例) *包声明 *导入包 *函数 *变量 *语句和表达式 *注释 流程控制 1.顺序结构 2.选择结构 (1)if else if 和 e ...
- nodejs 日志框架winston笔记
winston是一款nodejs的日志库,本文以2.1.1版本为例,介绍一下使用方法. 1.基础用法 引用日志库,返回的是一个对象.包含一些构造器,实例方法. 其中transports是日志输出方式. ...
- 2019-2020-1 20175313 《信息安全系统设计基础》实现mypwd
目录 MyPWD 一.题目要求 二.题目理解 三.需求分析 四.设计思路 五.伪代码分析 六.码云链接 七.运行结果截图 MyPWD 一.题目要求 学习pwd命令 研究pwd实现需要的系统调用(man ...
- Mysql 查看所有线程,被锁的表
查看所有MySQl相关的线程 show full processlist; 杀死线程id为2的线程 kill 2 查看服务器状态 show status like '%lock%'; 查看服务器配置参 ...