JS判断字符串字节长度(自动识别中英文)

你早晚会用到的,用CSS来控制文字长度毕竟不是什么需求都能满足,现在后台也不管字符长度截取了,只能用JS来截取字符串了。

 代码如下 复制代码

/**
 * 返回字符的字节长度(汉字算2个字节)
 * @param {string}
 * @returns {number}
 */
 
var getByteLen = function (val) {
    var len = 0;
    for (var i = 0; i < val.length; i++) {
        if (val[i].match(/[^x00-xff]/ig) != null) //全角
            len += 2;
        else
            len += 1;
    };
    return len;
}
var sAbc = '1a啊啊22飞3地方a';
var ol = getByteLen(sAbc);
alert('直接用length取得的字节长度:' + sAbc.length);
alert('通过getByteLen()方法取得的字节长度:' + ol);

通过上面的方法就可以继续写一个截取指定长度的新字符串了,截取掉的部分用…补全:

 代码如下 复制代码

/**
 * 返回字符的字节长度(汉字算2个字节)
 * @param {string}{number}
 * @returns {string}   +'...'
 */
 
var cutStrForNum = function (str, num) {
    var len = 0;
    for (var i = 0; i < str.length; i++) {
        if (str[i].match(/[^x00-xff]/ig) != null) //全角
            len += 2;
        else
            len += 1;
    }
    if (len >= num) {
        newStr = str.substring(0, num) + "...";
    }
    return newStr;
}
var sAbc = '1a啊啊22飞3地方a';
alert(cutStrForNum(sAbc, 3));

看个实例JS判断字符输入个数

1. $('textarea#txtPrizeNote');     //表示textarea控件名称

2. 'span' 显示剩余字数的标签

HTML:

 代码如下 复制代码

<div>
        <textarea id="txtPrizeNote" runat="server" height="74px" width="480px" maxlength="10"
            style="width: 480px; height: 74px; float: left"></textarea>
        <span style="color: Red;">*</span><br />
        剩余字数:<span id="showmsg" style="color: red"></span>
</div>

 
<script type="text/javascript">
        //返回val的字节长度
        function getByteLen(val) {
            var len = 0;
            for (var i = 0; i < val.length; i++) {
                if (val[i].match(/[^x00-xff]/ig) != null) //全角
                    len += 2;
                else
                    len += 1;
            }
            return len;
        }

        //返回val在规定字节长度max内的值
        function getByteVal(val, max) {
            var returnValue = '';
            var byteValLen = 0;
            for (var i = 0; i < val.length; i++) {
                if (val[i].match(/[^x00-xff]/ig) != null)
                    byteValLen += 2;
                else
                    byteValLen += 1;

                if (byteValLen > max)
                    break;

                returnValue += val[i];
            }
            return returnValue;
        }

        $(function() {
            var _area = $('textarea#txtPrizeNote');
            var _info = _area.next();
            var _max = _area.attr('maxlength');
            var _val;
            _area.bind('keyup change', function() { //绑定keyup和change事件
                if (_info.find('span').size() < 1) {//避免每次弹起都会插入一条提示信息
                    _info.append(_max);
                }

                _val = $(this).val();
                _cur = getByteLen(_val);

                if (_cur == 0) {//当默认值长度为0时,可输入数为默认maxlength值
                    _info.text(_max);
                } else if (_cur < _max) {//当默认值小于限制数时,可输入数为max-cur
                    _info.text(_max - _cur);
                } else {//当默认值大于等于限制数时
                    _info.text(0);

                    $(this).val(getByteVal(_val,_max)); //截取指定字节长度内的值
                }
            });
        });
    </script>

时间: 2024-09-30 12:22:44

JS判断字符串字节长度(自动识别中英文)的相关文章

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

本文实例讲述了JS判断字符串字节数并截取长度的方法.分享给大家供大家参考,具体如下: 这是在项目制作中,积累到的一个东西,感觉效果还可以,现在贴上效果: 那么,在页面上,我们需要检测两个东西,一个就是字节数,一个就是字符数. 由于数据库中,要求title的长度字节数为200,那么具体的js代码如下: /************************************************************************* * CodeBy:SCY CodeDate:20

JS判断字符串长度的5个方法

 这篇文章主要介绍了JS判断字符串长度的5个方法,并且区分中文和英文,需要的朋友可以参考下 目的:计算字符串长度(英文占1个字符,中文汉字占2个字符)   方法一:    代码如下: String.prototype.gblen = function() {     var len = 0;     for (var i=0; i<this.length; i++) {       if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) {

js 判断字符串长度:计算字符串长度/判断空

计算字符串长度可用的三种方法:   echo "$str"awk '{print length($0)}'  expr length "$str"  echo "$str"wc -c  但是第三种得出的值会多1,可能是把结束符也计算在内了. 判断字符串为空的方法有三种:   if [ "$str" = "" ]  if [ x"$str" = x ]  if [ -z "$st

js获取字符串字节数方法小结

 本文实例讲述了js获取字符串字节数的方法.分享给大家供大家参考.具体如下: 大家都知道,获取字符串的长度可用length来获取, 那么获取这段字符串的字节数呢? 英文字母肯定lenght和字节数都一样:都是1 而中文lenght=1,字节数=2 因此,需要作的就是把中文字符的字节数计算出来. 方法一: 1 2 3 4 5 alert('a'.replace(/[^u0000-u00ff]/g,"aaa").length); //原理:把中文字符替换成2个英文字母,那么字节数就是2,

JS获取字符串实际长度(包含汉字)的简单方法_javascript技巧

方法一: var jmz = {}; jmz.GetLength = function(str) { ///<summary>获得字符串实际长度,中文2,英文1</summary> ///<param name="str">要获得长度的字符串</param> var realLength = 0, len = str.length, charCode = -1; for (var i = 0; i < len; i++) { cha

js获取字符串字节数方法小结_javascript技巧

本文实例讲述了js获取字符串字节数的方法.分享给大家供大家参考.具体如下: 大家都知道,获取字符串的长度可用length来获取, 那么获取这段字符串的字节数呢? 英文字母肯定lenght和字节数都一样:都是1 而中文lenght=1,字节数=2 因此,需要作的就是把中文字符的字节数计算出来. 方法一: alert('a'.replace(/[^\u0000-\u00ff]/g,"aaa").length); //原理:把中文字符替换成2个英文字母,那么字节数就是2, //示例中改成替换

JS判断字符串包含的方法

 本文实例讲述了JS判断字符串包含的方法.分享给大家供大家参考.具体如下: 1. 例子: 1 2 3 4 5 6 7 8 var tempStr = "tempText" ; var bool = tempStr.indexOf("Texxt"); //返回大于等于0的整数值,若不包含"Text"则返回"-1. if(bool>0){ document.write("包含字符串"); }else{ docume

利用JS判断字符串是否含有数字与特殊字符的方法小结_javascript技巧

前言 本文主要介绍的是利用JS判断字符串是否含有数字与特殊字符的方法,文中有几种不同的方法,包括普通的JS验证法.正则表达式法,另外还有判断是否为浮点数的js函数,在最后还将简要介绍下isNAN函数的使用方法和例子,来一起学习学习吧. 一.正则表达式方法判断是否为数字,包括判断正整数: function checkRate(input) { var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字,//若判断正整数,则后边是:/^[1-9]+[0-9]*]*$/ if

JS判断字符串变量是否含有某个字串的实现方法_javascript技巧

JS判断字符串变量是否含有某个字串的实现方法 varCts = "bblText"; if(Cts.indexOf("Text") > 0 ){ alert('Cts中包含Text字符串'); } indexOf用法: 返回 String 对象内第一次出现子字符串的字符位置. strObj.indexOf(subString[, startIndex]) 参数 strObj 必选项.String 对象或文字. subString 必选项.要在 String 对