正则小数验证

Posted liufeiran

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则小数验证相关的知识,希望对你有一定的参考价值。

<input type="text" id="con" style="width:200px;height:50px;" value="345.56"/>&nbsp;&nbsp;&nbsp;&nbsp;<button id="but" style="width:200px;height:50px;">start</button>
        
<div id="result" style="background-color: #0099FF;"></div>
<div id="result1" style="background-color: #26B33E;"></div>
$(function(){
                var $but = $("#but");
                $but.on(‘click‘,function(){
                    var $con = $("#con").val();
                    var $result = $("#result");
                    var $result1 = $("#result1");
                    
                    var reg1 = /^(d+)(.d{1,2})?$/;
                    //必须整体都符合
                    //0: "345.56"整体结果
                    //1: "345"第一个小分组
                    //2: ".56"第二个小分组
                    
                    $result.html(reg1.exec($con));
                    //这里的显示结果会重复两次的原因是,将数组赋值给了它,这个数组包含了三项,整体结果,第一个小分组,第二个小分组,所以结果看起来是重复了两次其实是:
                    //res[0]->"345.56"    res[1]->"345"    res[2]->".56"
                    
                    var reg2 = /^(d+)(.d{1,2})?/;
                    //在没有$结束的情况下可以匹配到字符串中符合的部分,即使后面的不符合例如:345.56asdf和345.5656
                    //结果依然是(这样也许可以实现截取两位2而不四舍五入)
                    //0: "345.56"
                    //1: "345"
                    //2: ".56"
                    

                    var flag = reg2.test($con);
                    if(flag){
                        //输入为345.588888
                        //结果为345.58
                        $result1.html(reg2.exec($con)[0]);
                    }

                    
                    
                    var res = reg1.exec($con)
                    console.log(res,flag);
                    
                    
                    

//var ary = [1,2,3,4,5];            
//$result1.html(ary);//->12345




                })
                
                
                
            })

修饰符
g:全局匹配
i:忽略大小写匹配
m:多行匹配

量词元字符
+:出现1到多次元字符
?:出现0到1次元字符
*:出现0到多次元字符
{n}:出现n次
{n,}:出现n到多次
{n,m}:出现n到m次

特殊元字符
:转义字符(普转特或特转普)
.:除 之外的任意字符
d:匹配0-9中任意字符
D:匹配除0-9之外的任意字符
:匹配换行符
w:匹配0-9或字母或_中任意字符
s:匹配空白字符
:匹配边界符
:匹配制表符
:软空格
x|y:匹配x或y中的任意一个字符
[a-z]:匹配a-z中任意一个字符
[^a-z]:匹配非a-z的字符
[xyz]:匹配x或y或z中的一个字符
[^xyz]:匹配非xyz的字符
():小分组,大正则中的小正则
^:以某个元字符开始
$:以某个元字符结束
?::只匹配不捕获
?=:正向预查
?!:负向预查

以上是关于正则小数验证的主要内容,如果未能解决你的问题,请参考以下文章

使用正则表达式验证两位小数

正则表达式 验证数字格式 非负数 小数点后保留两位 数字正则 double正则

java如何验证正负整数11位,小数6位?正则表达式可以吗

正则表达式验证文本框只能输入数字和小数点

正则表达式验证文本框只能输入数字和小数点

js 用正则表达式验证只允许输入数字,或者是数字后两位小数点,如何写?