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+'...';
            }       
        }
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 100个常用的javascript函数 1、原生JavaScript实现字符串长度截取 复制代码代码如下: fun...
    老头子_d0ec阅读 413评论 0 0
  • 1、charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码。 strObj.charCodeA...
    可乐可乐请加冰阅读 519评论 0 0
  • var regexEnum = { intege : "^-?[1-9]\\d*$", // 整数 intege1...
    nick2046阅读 355评论 0 2
  • var regexEnum = { intege : "^-?[1-9]\\d*$", // 整数 intege1...
    a_foo阅读 1,302评论 0 4
  • 日薄西山隐重雾, 凉州词调当中出。 醉梦月下飞花影, 醒观云中呈锦书。
    旧时韶月阅读 197评论 2 12

友情链接更多精彩内容