先後臺驗證字符串長度

 

針對前臺腳本驗證的幾種方式測試

一、ui

$("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;
    }
});

二、針對獲取內容字符串的長度,也能夠分開來寫,漢子和字符spa

//獲取字符串長度(漢字算兩個字符,字母數字算一個)
    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;
    }

三、鍵盤字符驗證code

// 只要鍵盤一擡起就驗證編輯框中的文字長度,最大字符長度能夠根據須要設定
    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;
        }
    }

 

針對後臺腳本驗證的幾種方式orm

一、只驗證漢字的方法blog

/// <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;
        }

二、包括中文、字母和數字ip

/// <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;
        }

三、檢查同一個字符串中,不相同字符的個數字符串

/// <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;
        }

四、檢測字符串中含有中文字符串的的實際長度get

/// <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;
        }
相關文章
相關標籤/搜索