textarea里面length的故事。。

<script type="text/javascript">
function verification() {
	var sf = document.getElementById("operatorDesc").value;
	alert(sf.length);
}
</script>

<textarea name="operatorDesc" id="operatorDesc"></textarea>

<input type="button" οnclick="verification()" value="取长度"/>
</body>

在textarea里面输入一些中英结合的句子,其长度如下:

 f  -----1 ,

 f飞-----2,

飞飞----2.

即length函数将中文字符视为一个单位。 这里其实我的本意是中文按2个字符长度来计算,于是就出现了偏差。

 

下午请教了下前端的同事,给出一个精妙的解决方案,呵呵:

String.prototype.cLen = function(){
	return this.replace(/[\u00FF-\uFFFF]/g,"  ").length;
};
 

同样,在java代码里面,一样可以无损的切割中英文混合字符: (简单的利用char 255作为标尺)

public class Test111 {

	public static void main(String[] args) {
		final String s1 = "中yin文";
		final String s2 = "中ying文";
		final String s3 = "yin中";
		final String s4 = "中yin";
		final String s5 = "中英文";
		final String s6 = "中英文字";
		System.out.println(cut(s1) + " 字串长度为: " + s1.length());
		System.out.println(cut(s2) + " 字串长度为: "  + s2.length());
		System.out.println(cut(s3) + " 字串长度为: "  + s3.length());
		System.out.println(cut(s4) + " 字串长度为: "  + s4.length());
		System.out.println(cut(s5) + " 字串长度为: "  + s5.length());
		System.out.println(cut(s6) + " 字串长度为: "  + s6.length());
	}
	
	public static String cut(String param) {
        int len = param.length();
        int tmp = 0;
        String result="";
        for (int j = 0; j < len; j++)
        {
            tmp++;
            if (param.charAt(j) > 255)
            {
            	tmp++;
            }
            if (tmp > len / 2)
            {
                result = param.substring(0, j) + "***";
                break;
            }
        }
        return result;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值