js 替换

2016-02-19 09:00 3 1 收藏

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的js 替换,过去的都会过去,迎接崭新的开始,释放更美好的自己。

【 tulaoshi.com - Web开发 】

问题:就是将()()()((())())换成[][][[[]][]]的那种了,处理括弧配对用的
作者:infinte
要求:
[1]支持任意的“括弧”,也就是可以用{}()……或者类似XML的:a/a、[cc][cc:over]、{ttt] [ttt}
[2]严格按照层次匹配,就是(a)b(c(d)e)换成[a]b[c[d]e]而非[a]b[c(d]e) (结束太早了)
[3]左括号比右括号多时,保留多余的括号,即:()()((()()) → [][]([[][]]
[4]右括号比左括号多,保留多余的括号,即:(()()(()()))))) → [[][][[][]]])))

方案一:使用堆栈
作者:winter
代码:
代码如下:

script 
var strArr = "()()((()())"; 

function change(str) 

 var a=str.split(""); 
 var c=0; 
 var stack=[]; 
 var match={ 
 "(":")", 
 "{":"}", 
 "":"", 
 "" 
 } 
 for(var i=0;ia.length;i++) 
 if(match[a[i]]){ 
 stack.push([a[i],i]); 
 } 
 else if(a[i]==")"||a[i]=="}"||a[i]==""||a[i]=="】"){ 
 if(!stack.length)continue; 
 var tmp=stack.pop(); 
 if(match[tmp[0]]==a[i])a[i]="]",a[tmp[1]]="["; 
 else stack.push(tmp); 
 } 
 return a.join("") ; 

alert(change(strArr)); 
/script 

方案二:使用正则
作者:月影
代码:
代码如下:

script 
var strArr = "()()((()())"; 
var o = strArr; 
var r = o; 
do{ 
 o = r; 
 r = o.replace(/(([^()]*))/g,function(s,a){return '['+a+']'}); 
}while(o!=r); 
alert(r); 
/script 

来源:https://www.tulaoshi.com/n/20160219/1589158.html

延伸阅读
标签: Web开发
鉴于安全性的考虑,不少网站在登录输入密码时都采用了软键盘,避免一些键盘记录工具和木马对击键的捕捉。项目中也有这个需求,就分享给大家了,贴个效果图上来。。有兴趣的朋友可以收藏。。..如果觉得功能有点庞大,只需要数字小键盘的朋友,可参考代码精简。 下载大键盘: http://www.cnblogs.com/Files/sccxszy/softKey.rar 小键盘:http://ww...
标签: Web开发
function querystring(qs){ s=location.href; s=s.replace("?","?&").split("&"); re=""; for(i=1;is.length;i++){ if(s[i].indexOf(qs+"=")==0){   re=s[i].replace(qs+"=","");   } }   return re; } 非常不错的获取传递来的变量
标签: Web开发
html文件代码如下: !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" html head meta http-equiv="Content-Type" content="text/html; charset=utf-8" titleJS控制非法字符的输入/title /head body form p这里不允许输入如下字符:(像!@#$%^&am...
标签: Web开发
代码如下: //---------------------------------------------------------------  // Opacity Displayer, Version 1.0  // Copyright Michael Lovitt, 6/2002.  // Distribute freely, but please leave this notice intact.  //-...
标签: Web开发
\[img\](.+)\[/img\] img src="\1" border="0"

经验教程

863

收藏

69

精华推荐

JS判断汉字

JS判断汉字

小小雨009gxy

js代码解密

js代码解密

爱不如自作自受

Js的MessageBox

Js的MessageBox

万宝盒珠宝

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部