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

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. 记一次ckeditor上传图片到服务器问题

    package com.util;import java.io.IOException; import java.io.PrintWriter; import java.util.List;impor ...

  2. Android自定义surfaceView显示多张图片

    我自定义了一个surfaceview,我在上面绘制多张图片,让它能够上下方滚显示图片,但是onMeasure()方法在重写的时候遇到了问题,不知道如何设置它的高度, public class MySu ...

  3. Jpa实体VO使用继承的实体的做法@MappedSuperclass注解的使用

    在我们开发一个项目的时候,同城定义实体的时候,都会进行一些抽象,也就是面向对象的一些思想.1比如无论是数据实体还是其他类型的实体都会有id字段2.对于数据实体一般都会有创建人,创建时间,更新人,更新时 ...

  4. objective-c UITableview 自定义滑操(原创)

    滑动删除在当前的ios版本中已经支持了,但是遇到复杂的比如,滑动后的功能有多个,并不是删除功能,那么你就得自己写,我说得没错吧.......... 其实关于滑删嘛,在以前的项目中也遇到过,当时ios还 ...

  5. GC之详解CMS收集过程和日志分析

    2016-08-23   关于GC的算法和垃圾收集器的种类就暂且不说了,网上有大把的资料供参考 话题引入 让我们先简单的看下整个堆年轻代和年老代的垃圾收集器组合(以下配合java8完美支持,其他版本可 ...

  6. 通过Google身份验证器加强Linux帐户安全

    下载Google的身份验证模块: # wget https://google-authenticator.googlecode.com/files/libpam-google-authenticato ...

  7. 关于lr调用jar在vuser中可以运行,但是controller中却报错的问题

    如题,错误如下:javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.DocumentBuilder ...

  8. 性能测试学习之二 ——性能测试模型(PV计算模型)

    PV计算模型 现有的PV计算公式是: 每台服务器每秒平均PV量 =( (总PV*80%)/(24*60*60*40%))/服务器数量 =2*(总PV)/* (24*60*60) /服务器数量 通过定积 ...

  9. GJM : 进程、线程和协程的理解

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  10. Asp.net 实现Session分布式储存(Redis,Mongodb,Mysql等) sessionState Custom

    对于asp.net 程序员来说,Session的存储方式有InProc.StateServer.SQLServer和Custom,但是Custom确很少有人提及.但Custom确实最好用,目前最实用和 ...