`
LiYunpeng
  • 浏览: 954504 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

使用JS来做中英文混合字符长度限制

阅读更多
最近在写一个系统,但是数据库中设计的是全汉字的长度为最大

那么在HTML端,取字符长度来说,str.length的长度不管用英文,只计算单纯的长度,而不是占用的字符长度

下面是自己综合网上的 计算字符长度,以及截取字符长度自己组装写了的一套方法

$(document).ready(function() {
	$( "input,textarea" ).live("input",function() {
		debugger;
		var limit = $(this).attr("charLength"); 
		if(limit==""||limit==null) {
			return;
		}
		var length = fucCheckLength($(this).val());
		if(length>limit) {
			$(this).val(subCharStr($(this).val(),limit));
		}
	});
});

function fucCheckLength(strTemp) {
    var i, sum;   
    sum = 0;   
    for (i = 0; i < strTemp.length; i++) {   
        if ((strTemp.charCodeAt(i) >= 0) && (strTemp.charCodeAt(i) <= 255)) {   
            sum = sum + 1;   
        } else {   
            sum = sum + 2;   
        }   
    }   
    return sum;   
}

function subCharStr(str,n){  
   var _len=fucCheckLength(str,n);
   if(_len>n){  
     var _newLen=Math.floor(n/2);  
     var _strLen=str.length;
     var _newStr = "";
     for(var i=_newLen;i<=_strLen;i++){
    	 var tmpStr = str.substr(0,i);
         if(fucCheckLength(tmpStr)>n){
             return _newStr;
             break;
        } else {
        	_newStr = tmpStr;
        }
     }  
   }else{  
     return str;  
   }  
}


这样只要在Input中添加charLength属性,并给一个字符长度的值就OK了

比如,限制的为5
那么3个汉字就会被截取成两哥
如果是两个汉字一个英文字母,则还是5个字符
分享到:
评论

相关推荐

    js中英文混合的字符串换行

    //不分中英文按字符串长度循环每个字符截取换行 这个是隔10个字符换行一次 String psStr="asdfghjklzxcvbnmzxcvbnmsdfghaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbb"; String aa=""; String bb=""; for (int i...

    在javascript中如何得到中英文混合字符串的长度

    有同事在公司的OA上发了个贴子,介绍在javascript中如何得到中英文混合字符串的长度。 用的是正则表达式。 代码如下: var str = ”坦克是tank的音译”; var len = str.match(/[^ -~]/g) == null ? str.length : str....

    JavaScript获取中英文混合字符串长度的方法示例

    下面我们将详细讨论如何实现JavaScript获取中英文混合字符串长度的方法,并通过实例来解释。 首先,我们可以编写一个名为`StrLen`的函数,该函数接受一个字符串作为参数,然后逐个字符地检查字符串中的每个字符的...

    js java 判断中文,英文的混合长度

    根据给定文件的信息,本文将围绕“JS与Java中判断字符串中文、英文混合长度的方法”这一主题进行深入探讨。文章将分别介绍JavaScript和Java中如何处理包含中文字符和英文字符的混合字符串,并计算其等效长度。 ### ...

    js计算字符串长度

    js计算字符串长度,可以输入中文、英文、数字、中英文数字混合等,最后计算结果为字符串所占字节个数

    javascript截取字符串(通过substring实现并支持中英文混合)

    示例函数sub()使用正则表达式来处理中英文混合字符串,通过比较替换后的字符串长度来判断截取长度是否正确。 示例代码如下: ```javascript &lt;script type="text/javascript"&gt; var sub = function(str, n) { var r...

    js截取固定长度的中英文字符的简单实例

    在JavaScript中,处理中英文混合的字符串截取是一项常见的任务,尤其在网页开发中,比如显示摘要、控制输入长度等场景。由于JavaScript的内置方法`String.prototype.length`只能计算Unicode字符的数量,对于中文字符...

    JavaScript截取中文字符串

    假设有一个包含中英文混合的字符串`"Hello, 你好!"`,现在希望截取前5个字符(其中中文字符按两个字符计): ```javascript var str = "Hello, 你好!"; var result = subString(str, 5, true); console.log(result)...

    JS实现中英文混合文字溢出友好截取功能

    4. 实现中英文混合文本溢出友好截取的函数封装:为了处理中英文字符占用空间不一致的问题,可以封装一个函数,对字符串进行逐个字符检查,并根据是英文字符还是中文字符来累加长度。当累加长度达到截取长度要求时,...

    JS字符串长度判断,超出进行自动截取的实例(支持中文)

    总结来说,文档中提供的JavaScript示例代码,通过合理的长度计算方法和字符串截取逻辑,实现了对中文和英文混合字符串的有效处理,满足了在文本输入框中限制字符长度的需求,特别是对于需要处理中文输入的场景。...

    ASP.NET中英文混合特效服务端验证控件v1.01

    总之,"ASP.NET中英文混合特效服务端验证控件v1.01"是一个专门为处理包含中英文字符的验证场景设计的工具,它利用了ASP.NET的强大功能,为开发者提供了便捷、安全的验证解决方案。结合VS2005和C#,这个控件可以有效...

    js处理包含中文的字符串实例

    js中String类型自带的属性length获取的是字符串的字符数目,但是前端经常会需要限制字符串的显示长度,一个中文字符又大概占两个英文小写字符的显示位置,所以中英文混合的情况下用length值来判断显示长度往往并不...

    JS按字节截取字符长度实例

    在JavaScript中,处理字符串长度有时会遇到特殊的情况,特别是涉及到中英文混合的字符串。中文字符占用的字节数是英文字符的两倍,这在计算显示长度时需要特别注意。本实例提供了一种方法,用于根据字节长度来截取...

    用CSS解决中英文混合字符串的截取省略问题的解决办法

    ### 使用CSS解决中英文混合字符串的截取省略问题 #### 背景与需求 在Web开发过程中,经常会遇到需要展示大量文本信息的情况,如新闻列表、文章标题等。为了确保页面布局整洁美观,同时适应不同的屏幕尺寸,通常...

    Ant Design Vue 添加区分中英文的长度校验功能

    在Ant Design Vue中实现区分中英文的长度校验功能是一项针对混合文本输入场景的改进,它解决了一个常见的需求,即需要对用户输入的字符数量进行校验,同时能够识别和区分全角字符和半角字符。全角字符和半角字符在...

    数字字母特殊字符两两混合正则表达式

    在实际编程中,你可能会使用Python的`re`模块,Java的`java.util.regex`包,JavaScript的`/pattern/`语法,或者其他支持正则表达式的语言来实现这个匹配。例如,在Python中,你可以这样做: ```python import re ...

    JS判断字符串字节数并截取长度的方法

    因此,当处理包含中英文混合的字符串时,如果仅以字符数作为长度限制的依据可能会导致实际字节超出预期。这就要求我们进行字节级别的检查。 在给出的示例中,作者展示了一个名为`notifyTextLength`的函数,这个函数...

Global site tag (gtag.js) - Google Analytics