• jquery正则检测字符串表达式的合法性


    能检测所有不合法表达式,不信你就试一下!

    浮点数支持的格式如下:1.2、2.0、0.2、0.0...... 如果是小数,小数点两边必须要有数字

    不支持科学计数法、.2、2.

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>验证表达式的合法性</title>
        <script type="text/javascript" src="js/jquery.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                $("#but").click(function(){
                    var str = "";
                    str = $.trim($("#gongshi").val()); 
                    //检查公式
                    if(check_gongshi(str)){
                        $("#show_info").text("合法表达式");
                    }else{
                        $("#show_info").text("非法表达式");
                    }
                });
            });
            //公式合法性检测函数
            function check_gongshi(cal){
                if(cal.search(/^[+-*/.)]|[+-*/.(]$|[+-*/.]{2}|[^+-*/()d.]|([d.)]()|()[d.])|(([+-*/.)])|([+-*/.]))|(.d+.)/) > -1){
                    return false;
                }else{
                    var num_left = 0;
                    for(i = 0; i < cal.length; i++){
                        if(cal[i] == '('){
                            num_left++;
                        }
                        if(cal[i] == ')'){
                            if(num_left > 0){
                                num_left--;
                            }else{
                                return false;
                            }
                        }
                    }
                    if(num_left >0){
                        return false;
                    }else{
                        return true;
                    }
                }
            }
        </script>
    </head>
    <body>
        <input type="input" name="gongshi" id="gongshi" value="(50+2.3*10+(2+3)*10/5)">
        <button type="button" id="but">验证</button>
        <label id="show_info"></label>
    </body>
    </html>

    实测图:

  • 相关阅读:
    结对-贪吃蛇游戏结对编项目设计文档
    java基础语法day04
    java基础语法day03
    轻量化ViewController的几个小技巧
    __weak与__block修饰符的区别
    OC与Swift的主要区别
    copy与retain /深拷贝与浅拷贝
    如何理解MVC设计模式
    iOS常见加密方法
    关于RunLoop
  • 原文地址:https://www.cnblogs.com/zhaopeng938/p/8269975.html
Copyright © 2020-2023  润新知