您的位置:首页 > Web前端 > JavaScript

js去除重复字符串两种实现方法

2013-01-09 00:00 836 查看
方法一:
function checkRe(checkid) { 

var id = window.parent.getQry("ctrid") + "_"; 

var values = window.parent.opener.document.getElementById(id + "txt_dept_name").value; 
var keys = window.parent.opener.document.getElementById(id + "hf_ids").value; 

var ary = checkid.value.split("|"); 
var newsValues = ary[0]; 
var newsKeys = ary[1]; 

if (checkid.checked) { 
values = values + "," + newsValues; 
keys = keys + "," + newsKeys; 

} 
else { 
values = values.replace(new RegExp("," + newsValues), ""); 
keys = values.replace(new RegExp("," + newsKeys), ""); 

} 

values = okd(values); 
keys = okd(keys); 

window.parent.opener.document.getElementById(id + "txt_dept_name").value = values; 
window.parent.opener.document.getElementById(id + "hf_ids").value = keys; 

return; 

} 
//转换成数组,去掉重复,再组合好。 
function okd(str) { 

var ary = str.split(","); 
// 去重的算法 
var json = {}; 
for (var i = 0; i < ary.length; i++) { 

if (ary[i] != "") { 

json["a" + ary[i]] = ary[i]; 
} 
} 

// 查看结果 
var str2 = ""; 
for (var key in json) { 
str2 += "," + json[key]; 
} 

var s = str2.toString(); 

//去掉第一个逗号 
if (s.substr(0, 1) == ',') { 
s = s.substr(1); 
} 

return s; 
} 

function add_all() { 
var ck = document.getElementsByTagName("input"); 
for (i = 0; i < ck.length; i++) { 
if (ck[i].type == "checkbox") { 
ck[i].checked = true; 
checkRe(ck[i]); 

} 
} 

} 

function del_all() { 
var id = window.parent.getQry("ctrid") + "_"; 
window.parent.opener.document.getElementById(id + "txt_dept_name").value = ""; 
window.parent.opener.document.getElementById(id + "hf_ids").value = ""; 

var ck = document.getElementsByTagName("input"); 
for (i = 0; i < ck.length; i++) { 
if (ck[i].type == "checkbox") { 
ck[i].checked = false; 

} 
} 
}

<input id='chk_pkId' type='checkbox' name='chk' onclick='checkRe(this);' value='值|pkId' />

方法二:
function filterRepeatStr(str){ 
var ar2 = str.split(","); 
var array = new Array(); 
var j=0 
for(var i=0;i<ar2.length;i++){ 
if((array == "" || array.toString().match(new RegExp(ar2[i],"g")) == null)&&ar2[i]!=""){ 
array[j] =ar2[i]; 
array.sort(); 
j++; 
} 
} 
return array.toString(); 
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: