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;
}
}
}

js写的替换字符串(相当于js操作字符串的一个练习)的更多相关文章

  1. JS 利用正则表达式替换字符串

    JS 利用正则表达式替换字符串 博客分类: JavaScript 学习资料 Java代码 收藏代码 JS 利用正则表达式替换字符串 var data = "123123,213,12312, ...

  2. js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式

    js replace 全局替换   js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...

  3. js正则实现从一段复杂html代码字符串中匹配并处理特定信息

    js正则实现从一段复杂html代码字符串中匹配并处理特定信息 问题: 现在要从一个复杂的html代码字符串(包含各种html标签,数字.中文等信息)中找到某一段特别的信息(被一对“|”包裹着),并对他 ...

  4. 偷天换日:网络劫持,网页js被伪装替换。

    偷天换日 3月12号石家庄一个客户(后面简称乙方)有几家门店,平台收银(web)有一些功能无法正常使用,平台有上千家门店在使用,到目前为止别的省份都没有此问题.远程协助发现,js日期控件无法正常调用, ...

  5. 前端总结·基础篇·JS(二)数组深拷贝、去重以及字符串反序和数组(Array)

    目录 这是<前端总结·基础篇·JS>系列的第二篇,主要总结一下JS数组的使用.技巧以及常用方法. 一.数组使用 1.1 定义数组 1.2 使用数组 1.3 类型检测 二.常用技巧 2.1 ...

  6. JS操作字符串

    JS操作字符串 1.函数:split() 把字符串按分隔符分割成数组. 语法:字符串.split(separator,limit); separator:分隔符. 功能:使用一个指定的分隔符把一个字符 ...

  7. java json字符串传递给 js 时 特殊字符转义错误 研究

    一些换行 回车等符号需要转义 主要注意 单引号 与双引号. 一 如果js以 双引号接收字符串 则转单引号 "  至 \" 否则js报错 二 如果js以 单引号接收字符串 则转单引号 ...

  8. js如何生成一个对象,并转化为json字符串

    js如何生成一个对象,并转化为json字符串,很多人都会误写为: var ary = []; var obj = {}; for (var i = 0; i < 3; i++) { obj.na ...

  9. 原生js写Ajax

    //原生js写ajax就像打电话 //打电话分下面4步//1.拿出手机//2.拨号//3.说话//4.挺对方说话 //ajax也分下面4步//1.创建ajax对象//2.连接到服务器//3.发送请求( ...

随机推荐

  1. Android百度地图

        帖子   热搜: 二维码 聊天 二维码扫描 传感器 游戏 定位 手势绘图 小项目 相框 绘图 涂鸦 拨打电话 记事本 定时器 通话记录 短信群发 listview 音乐播放器 项目例子 百度地 ...

  2. 发布 windows 10 universal app 时微软账号验证失败

    具体错误:Visual Studio encountered an unexpected network error and can't contact the Microsoft account s ...

  3. [cocos2d-x·解Bug]关于cocos2d-x游戏在android锁屏状态下播放Bgm的解决方法

    最近<宠物联萌>在三星App上发布遇到一个问题:如果用户在锁定屏幕时解锁解到一半时取消解锁,这时用cocos2d-x开发的游戏就会出现游戏Bgm会恢复播放,但手机屏幕仍然是锁屏状态的Bug ...

  4. I.MX6 Ethernet UI patch failed

    /*********************************************************************** * I.MX6 Ethernet UI patch f ...

  5. MyEclipse的快捷使用(含关联源码和Doc的方式)

    删除行代码 :在Eclipse中将光标移至待删除的行上,然后按Ctrl+d 组合键 快速导入包 :在Eclipse中将光标移至相应的类上面,按Ctrl+Shift+M 组合键 批量行注释 :Ctrl+ ...

  6. 1047图的深度优先遍历c语言

    描述 图(graph)是数据结构 G=(V,E),其中V是G中结点的有限非空集合,结点的偶对称为边(edge):E是G中边的有限集合.设V={0,1,2,……,n-1},图中的结点又称为顶点(vert ...

  7. Activity与Activity之间,Fragment与Fragment之间通过Bundle传值的研究

    一.Fragment与Activity的通讯   在使用fragment的时候,通常的用法都是使用一个activity来管理不同的fragment,所以每个fragment与activity的及时通讯 ...

  8. webdriver(python)学习笔记六——操作测试对象

    定位到具体对象后,就需要对其进行操作,比如点击.输入内容等. 一般来说,webdriver中比较常用的操作对象的方法有下面几个 click 点击对象 send_keys 在对象上模拟按键输入 clea ...

  9. codeforces 687B - Remainders Game 数学相关(互质中国剩余定理)

    题意:给你x%ci=bi(x未知),是否能确定x%k的值(k已知) ——数学相关知识: 首先:我们知道一些事情,对于k,假设有ci%k==0,那么一定能确定x%k的值,比如k=5和ci=20,知道x% ...

  10. 【C# C++】C#中调用msvcr100.dll中的_beginthreadex函数

    msvcr100.dll是VS2010的C运行时库DLL, _beginthreadex开启子线程的函数就在这个DLL里面实现 unsigned long _beginthreadex(    voi ...