JavaScript转换字符串:大写+下划线格式

来源:互联网 发布:剑三毒哥妖孽捏脸数据 编辑:程序博客网 时间:2024/06/06 17:08

这里提到的字符串格式为:packageBusinessFlag 转换后:PACKAGE_BUSINESS_FLAG


为什么做这个:

公司需要将json转换成xml其中代码已经存在。但是转换之后确是packageBusinessFlag不符合要求,so就写了个字符串转换的方法。


思路:

(1)判断首字母是否大写,若小写将字符串按照大写分组,否则将字符串转换为大写;

(2)循环数组,判断index>0时进行数组内字符串修改(ps:分组时大写字母干掉了);

(3)index>0时result+="_"+字符串转换为大写;

(4)index<0时result=字符串转换为大写;


代码:

/**     * 改变字符串为标签样式     * @param name     * @returns {string}     */    function str2label(name) {        var result = "";        //首字母小写执行标签化        if (!name.charAt(0).match(/[A-Z]+/)) {            //根据大写字母进行分组            var names = name.split(/[A-Z]+/);            //循环数组            $.each(names, function (index, item) {                //判断index>0时进行添加字母处理                if (index > 0) {                    //分组时干掉的字母位置                    var strlength = 0;                    //循环获得字母位置                    for (var i = index; i > 0; i--) {                        strlength += names[i - 1].length;                    }                    //从源字符串中截取字母                    var str = name.substring(strlength, strlength + 1);                    //将字母添加到相应位置                    names[index] = str + item;                    //组合成相应标签格式                    result += "_" + names[index].toUpperCase();                } else {                    //数组第一个不用加下划线                    result = names[index].toUpperCase();                }            });        } else {            result = name.toUpperCase();        }        return result    };

遇到的问题:

忘记添加首字母判断导致拆分错误。例如:PPT转换后_P__P__T




0 0
原创粉丝点击