深圳幻海软件技术有限公司 欢迎您!

每日算法4:计算字符串中的字节数;正则匹配;代码实现outerHTML

2023-03-02

匹配输入的字符:以字母或_开头,后面由数字字母_组成长度为5-20的字符串varreg=/^[a-bA-B_][a-bA-B0-9_]{4,19}/varname1='abb'console.log(reg.test(name1)题目描述:js求字符串字节长度方法描述:汉字字节为2,其他为1一个英文

匹配输入的字符:以字母或_开头,后面由数字字母_组成长度为5-20的字符串

    var reg=/^[a-bA-B_][a-bA-B0-9_]{4,19}/
    var name1='abb'
    console.log(reg.test(name1)

题目描述:js求字符串字节长度方法

    描述:汉字字节为2,其他为1
    一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。英文标点占一个字节,中文标点占两个字节
   只有中文的Unicode编码大于255

    var str = 'jg78*笑笑';
方法1:
    function getByteLength1(str){
        var count = 0;
        for(var i = 0;i < str.length;i ++){
            if(str.charCodeAt(i) > 255){//charCodeAt返回参数Unicode编码
                count +=2;//中文为2Byte
            }else{
                count ++;//其他为1Byte
            }
        }
        return count;//返回参数字节长度值,也可以直接console输出
    }
方法2:
    // 中文和英文一起,不分开讨论
    function getByteLength2(str){
        var count = str.length;//首先count等于字符串的长度
        for(var i = 0;i < str.length;i ++){
            if(str.charCodeAt(i) > 255){//如果Unicode编码大于255为中文
                count ++;//在原来基础上没多一个中文就+1
            }
        }
        return count;//返回参数字节长度值,也可以直接console输出
    }

    var res = getByteLength1(str);
    console.log(res);

/*

代码实现outerHTML

    */

    Object.prototype.outerHTML=function(){
        var innerCon = this.innerHTML;
        outerCon = this.appendChild(innerCon);
        alert(outerCon)
    }
    var out = document.getElementsByClassName('out')[0].outerHTML
    console.log(out)
    // 结果:<div class="out">out</div>