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

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 ; Regex regex = new Regex("[\u4e00-\u9fa5]+", RegexOptions.Compiled);
char[] stringChar = str.Trim().ToCharArray();
StringBuilder sb = new StringBuilder();
int nLength = ;
for (int i = ; i < stringChar.Length; i++)
{
if (regex.IsMatch((stringChar[i]).ToString()) || (stringChar[i] > ))
{
nLength += ;
}
}
return nLength;
}

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

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

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

/// <summary>
/// 检查同一个字符串中不相同字符的个数
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static int CheckStringChar(string Str)
{
string newStr = "";
char oldChar = '_';
for (int i = ; 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 = ;
byte[] b = System.Text.ASCIIEncoding.ASCII.GetBytes(str);
for (int i = ; i < b.Length; i++)
{
if (b[i] == )
{
chineseLength++;
}
chineseLength++;
}
return chineseLength;
}

JS代码判断字符串中有多少汉字的更多相关文章

  1. JS代码判断字符串中有多少汉字【转】

    $("form").submit(function () { 2 var content = editor.getContentTxt(); 3 var sum = 0; 4 re ...

  2. JS代码判断IE6,IE7,IE8,IE9!

    JS代码判断IE6,IE7,IE8,IE9!2011年12月15日 星期四 14:01做网页有时候会用到JS检测IE的版本,下面是检测Microsoft Internet Explorer版本的三种代 ...

  3. JS代码判断IE6,IE7,IE8,IE9的函数代码

    JS代码判断浏览器版本,支持IE6,IE7,IE8,IE9!做网页有时候会用到JS检测IE的版本,下面是检测Microsoft Internet Explorer版本的三种代码 做网页有时候会用到JS ...

  4. js 技巧 (八)JS代码判断集锦(之二)

    JS代码判断集锦(之二) <INPUT TYPE="button" value="登录"  tabindex="4"> < ...

  5. js 技巧 (七)JS代码判断集锦(之一)

    JS代码判断集锦(之一) ~~~~~~~~~~~~~~~~~~ <script language="JavaScript"> function checkid(iden ...

  6. js代码判断浏览器种类IE、FF、Opera、Safari、chrome及版本

    这篇文章主要分享了判断IE.FF.Opera.Safari.Chrome等浏览器和版本的两种方法,需要的朋友可以参考下 因为ie10-ie11的版本问题,不再支持document.all判断,所以ie ...

  7. Node.js之判断字符串中是否包含某个字符串

    server.txt内容如下: 阿里云服务器 关于应用场景,就不多说了,字符串是不论是后端开发还是前端开发等,都是要经常打交道了. test.js(node.js代码,只要被本地装了node.js环境 ...

  8. js 正则判断字符串下划线的长度

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. js如何判断字符串是否进行过window.btoa()转码

    window.btoa()是基于Base64算法的.window.btoa()只能将ASCII字符进行转码 因此我们需要了解Base64的原理及主要特征:Base64的原理在这里就不多说了,网上很多讲 ...

随机推荐

  1. 【Java每日一题】20161020

    20161019问题解析请点击今日问题下方的"[Java每日一题]20161020"查看 package Oct2016; public class Ques1020 { publ ...

  2. XE8 FMX SpeedButton 大图标(改 Style)

    自从 XE8 提供 ImageList 带来了很多便利,但 SpeedButton 的图标太小(不够大气),还好 FMX 提供了 Style 可供使用者自订图标大小及显示位置,请自行按图索骥,做一遍: ...

  3. Scalaz(12)- Monad:再述述flatMap,顺便了解MonadPlus

    在前面的几篇讨论里我们初步对FP有了些少了解:FP嘛,不就是F[A]吗?也是,FP就是在F[]壳子(context)内对程序的状态进行更改,也就是在F壳子(context)内施用一些函数.再直白一点就 ...

  4. MySQL max_allowed_packet设置及问题

    MySQL根据配置文件会限制server接受的数据包大小. 有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败. 查看目前配置 show VARIABLES like ...

  5. Rational Rose :从用例图开始

    前置条件:安装Rational Rose 2003 找开Rose工具,选择用例视图  Use Case View 先看看这个视图下面都有哪些工具,都能做一些什么: 下面详细说一下: 用例视图下面有工具 ...

  6. paramiko 遭遇socket.error: Socket is closed 错误的解决办法

    似乎是connection自己断了解决的办法是在创建conn的时候添加下面这句 conn.keep_this = conn_session 完整代码 def create_a_conn(ip_addr ...

  7. angular学习的一些小笔记(中)之基础ng指令

    一.布尔属性指令: ng-disabled:就是ng-disabled=true-->就指向不可用 <!doctype html> <html ng-app="&qu ...

  8. jQuery Danmmu Player 弹幕视频

    Danmmu Player是基于jQuery的弹幕视频插件.当在看视频的时候,同时发表自己的观点,这样很好的提高用户互动效果.其实也就是在视频界面上做一个滚动展示动画效果,这样的聊天互动视频效果我们叫 ...

  9. 定制Eclipse IDE之界面篇

    为什么要定制IDE?      在工作时候,当公司有了自己的框架,给自己开放人员用,甚至是可以卖的时候,我们可以做成一个产品,而这个产品将包括框架本身.文档.工具.教程等等.工具之中最重要的莫过于开发 ...

  10. HTML基础知识总结

    经过这段时间的学习,对于html的一些基础知识有了一定的了解.所谓好记性不如烂笔头,唯有一点点累积,才能汇聚成知识的海洋.现在,我对这段时间的学习做一个总结. 一.HTML的定义 HTML,超文本标记 ...