js字符串截取和字符正则校验

/**
*x00-xff是指所有ASCII,即单字符,/[^\x00-xff]/g指所有非单字符,包含全角字符,汉字
\u4e00-\u9fa5匹配所有的汉字,只匹配汉字,不包含全角字符,全角字符也占两个字节
/
var strDo = {
getByteLength:function(str){
if(typeof str !== 'string') return 0;
return str.replace(/[^\x00-xff]/g,'
').length;
},
//检查值是否字母,数字,汉字,且字节长度是大于6小于32
checkVal:function(val){
var reg = /^[a-zA-Z\d\u4e00-\u9fa5]+$/;
if(reg.test(val)){
var len = this.getByteLength(val);
return len > 6 && len < 32;
}else{
return false;
}
},
//截取等长字符串
equalLengthStr:function(str,len){
if(typeof str !== 'string') return '';
var len = len || 99999,
tempStr = '',
n = 0;

            if(str.replace(/[^\x00-\xff]/g,'**').length < len){
                return str;
            }else{
                for(var i = 0,j = str.length; i < j; i++){
                    if(/[^\x00-xff]/.test(str[i])){
                        n = n + 2;
                    }else{
                        n = n + 1;
                    }
                    tempStr += str[i];
                    if(n >= len) break;
                }
                return tempStr+'...';
            }       
        }
    }

你可能感兴趣的:(js字符串截取和字符正则校验)