zoukankan      html  css  js  c++  java
  • 前后台验证字符串长度

    针对前台脚本验证的几种方式

    1、

    $("form").submit(function () {
        var content = editor.getContentTxt();
        var sum = 0;
        re = /[u4E00-u9FA5]/g;  //测试中文字符的正则
        if (content) {
            if (re.test(content))        //使用正则判断是否存在中文
            {
                if (content.match(re).length <= 10) {  //返回中文的个数
                    $.dialog.tips("正文不能小于10个汉字!");
                    return false;
                }
                else {
                    var $submit = $("input[type='submit']").attr("disabled", true);
                    setTimeout(function () { $submit.attr("disabled", false) }, 5000);
                    return true;
                }
            }
            else {
                $.dialog.tips("正文不能小于10个汉字!");
                return false;
            }
        }
        else {
            $.dialog.tips("正文不能小于10个汉字!");
            return false;
        }
    });

    2、针对获取内容字符串的长度,也可以分开来写,汉子和字符

    //获取字符串长度(汉字算两个字符,字母数字算一个)
        function getByteLen(val) {
            var len = 0;
            for (var i = 0; i < val.length; i++) {
                var a = val.charAt(i);
                if (a.match(/[^x00-xff]/ig) != null) {
                    len += 2;
                }
                else {
                    len += 1;
                }
            }
            return len;
        }

    3、键盘字符验证

    // 只要键盘一抬起就验证编辑框中的文字长度,最大字符长度可以根据需要设定
        function checkLength(obj) {
            var maxChars = 100;//最多字符数
            var curr = maxChars - getByteLen(obj.value);
            if (curr < 10) {
                document.getElementById("checklen").innerHTML = curr.toString();
            }
            if (curr > 0) {
                document.getElementById("checklen").innerHTML = curr.toString();
            } else {
                document.getElementById("checklen").innerHTML = '0';
                document.getElementById("subject").readOnly = true;
            }
        }

    针对后台脚本验证的几种方式

    1、只验证汉字的方法

    /// <summary>
            /// 计算字符串长度,只校验汉字
            /// </summary>
            /// <param name="str"></param>
            /// <returns></returns>
            public static int ChineseLen(string str)
            {
                if (string.IsNullOrEmpty(str))
                    return 0;
    
                Regex regex = new Regex("[u4e00-u9fa5]+", RegexOptions.Compiled);
                char[] stringChar = str.Trim().ToCharArray();
                StringBuilder sb = new StringBuilder();
                int nLength = 0;
                for (int i = 0; i < stringChar.Length; i++)
                {
                    if (regex.IsMatch((stringChar[i]).ToString()) || (stringChar[i] > 255))
                    {
                        nLength += 2;
                    }
                }
                return nLength;
            }

    2、包括中文、字母和数字

    /// <summary>
            /// 计算字符串长度,中文按照2个字节算,字母和数字按照1个字节算
            /// </summary>
            /// <param name="str"></param>
            /// <returns></returns>
            public static int Len(string str)
            {
                if (string.IsNullOrEmpty(str))
                    return 0;
    
                Regex regex = new Regex("[u4e00-u9fa5]+", RegexOptions.Compiled);
                char[] stringChar = str.Trim().ToCharArray();
                StringBuilder sb = new StringBuilder();
                int nLength = 0;
                for (int i = 0; i < stringChar.Length; i++)
                {
                    if (regex.IsMatch((stringChar[i]).ToString()) || (stringChar[i] > 255))
                    {
                        nLength += 2;
                    }
                    else
                    {
                        nLength = nLength + 1;
                    }
    
                }
                return nLength;
            }

    3、检查同一个字符串中,不相同字符的个数

    /// <summary>
            /// 检查同一个字符串中不相同字符的个数
            /// </summary>
            /// <param name="str"></param>
            /// <returns></returns>
            public static int CheckStringChar(string Str)
            {
                string newStr = "";
                char oldChar = '_';
                for (int i = 0; i < Str.Length; i++)
                {
                    if (oldChar != Str[i])
                    {
                        oldChar = Str[i];
                        newStr += Str[i];
                    }
                }
                return newStr.Length;
            }

    4、检测字符串中含有中文字符串的的实际长度

    /// <summary>
            /// 检测含有中文字符串的实际长度
            /// </summary>
            /// <param name="str">要检测的字符串</param>
            /// <returns>返回结果长度</returns>        
            public static int GetChineseStringLength(string str)
            {
                int chineseLength = 0;
                byte[] b = System.Text.ASCIIEncoding.ASCII.GetBytes(str);
                for (int i = 0; i < b.Length; i++)
                {
                    if (b[i] == 63)
                    {
                        chineseLength++;
                    }
                    chineseLength++;
                }
                return chineseLength;
            }
  • 相关阅读:
    .net core 之Hangfire任务调度
    .net core 在扩展中使用接口实例之IServiceProvider
    .net core webapi 配置swagger调试界面
    c# async/await异步编程死锁的问题
    c# 关于async/await异步编程的浅析和使用
    后端向服务器发送客户端请求--HttpWebRequest
    FluentAPI关系映射配置
    FluentAPI配置
    AutoFac与ASP.NET MVC结合使用
    Log4Net快速配置
  • 原文地址:https://www.cnblogs.com/zhangpengnike/p/6053706.html
Copyright © 2011-2022 走看看