js字符操作

在验证输入时常要对字符进行操作, 为免重复造轮子, 做个记录

正文

  • 计算字符数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    /** 1个汉字 = 2个字符 **/
    function getBytesNum (str) {
    var bytesCount = 0;
    for (var i = 0; i < str.length; i++) {
    var c = str.charAt(i);
    /^[\u0000-\u00ff]$/.test(c) ? bytesCount += 1 : bytesCount += 2;
    }
    return bytesCount;
    }
  • 截取前n个字符

    1
    2
    3
    4
    5
    6
    7
    /** 截取字符, 一个汉字等于两个字符, ("我是oulafen", 6)=>"我是ou" **/
    function subString(str, n) {
    if(!str){
    return '--';
    }
    return str.replace(/([^x00-xff])/g, "$1a").slice(0, n).replace(/([^x00-xff])a/g, "$1");
    };