• 正则小数验证和去除中间空格


    <input type="text" id="con" style="200px;height:50px;" value="345.56"/>&nbsp;&nbsp;&nbsp;&nbsp;<button id="but" style="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
    
    
    
    
                    })
                    
                    
                    
                })
    value.replace(new RegExp(/( )/g), '-')

    去除中间的空格,替换为-,2020/6/10 10:57:10=>2020/6/10-10:57:10

    修饰符
    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的字符
    ():小分组,大正则中的小正则
    ^:以某个元字符开始
    $:以某个元字符结束
    ?::只匹配不捕获
    ?=:正向预查
    ?!:负向预查

  • 相关阅读:
    JS 异步编程
    JS XMLHttpRequest
    JS 日期
    JS DOM
    JS 异常处理
    JS BOM
    JS 正则表达式
    JS 面向对象
    (22)python PhantomJS
    HDU1698 线段树(区间更新区间查询)
  • 原文地址:https://www.cnblogs.com/liufeiran/p/12617852.html
Copyright © 2020-2023  润新知