随笔 - 833  文章 - 0  评论 - 9  阅读 - 35万

js写的替换字符串(相当于js操作字符串的一个练习)

1.达到的效果

  1./main_1.do,/left_1.do -> main:1,left:1
  2./tbl_type/v_list_{id}.do -> tbl_type:list:{id}
  3./tmd/v_list.do -> tmd:list

2.代码

复制代码
/*
 * 修改菜单URI自动设置权限URI
 */
function autoSetMenuPermission() {
    var permission = document.getElementsByName("menuPermission")[0];
    var menuUri = document.getElementsByName("menuUri")[0].value;
    var perUri;
    if (menuUri.indexOf(",") != -1) {
        var uriArr = menuUri.split(",");
        var perUriArr = new Array();
        for (x in uriArr) {
            perUriArr.push(removeUnderLine(uriArr[x]));
        }
        perUri = perUriArr.toString();
    } else {
        perUri = removeUnderLine(menuUri);
    }
    permission.value = perUri;
}
/*
 * 1./main_1.do,/left_1.do    main:1
 * 2./tbl_type/v_list_{id}.do tbl_type:list:{id}
 * 3./tmd/v_list.do tmd:list
 */
function removeUnderLine(str) {
    str = str.replace(".do","").replace("/","");
    var index_backslash = str.indexOf("/");
    if (index_backslash != -1) {
        var arry = str.split("/");
        var name = arry[0];
        var oper = arry[1];
//        alert(oper);
        if (oper.indexOf("_")!=-1) {
            var operArr = oper.split("_");
            switch (operArr.length) {
            case 2:
//                aa = oper.replace("_",":");
                prefix = oper.substr(0,1);
//                alert(prefix);
                endfix = oper.substr(oper.indexOf("_")+1);
                if (prefix == "o") {
                    if (endfix == 'add') {
                        endfix = 'save';
                    }else if(endfix == 'edit'){
                        endfix = 'update';
                    }
                }
                return name+":"+endfix;
                break;
            case 3:
                if (operArr[2] == 'order') {
                    aa = oper.substr(oper.indexOf("_")+1);
                } else {
                    aa = oper.substr(oper.indexOf("_")+1).replace("_",":");
                }
//                alert(aa);
                return name+":"+aa;
                break;
            default:
                break;
            }
        }else{
            return name+":"+oper;
        }
        
    } else {
        var index = str.indexOf("_");
        if (index != -1) {
            if (isNaN(str.substr(index + 1))) {
                return str.substr(index + 1);
            } else {
                return str.replace("_",":");
            }
        } else {
            return str;
        }
    }
}
复制代码

 

posted on   Simle  阅读(232)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示