如何去掉字符串重复的部分

cloudgamer 2009-04-16 10:36:52
2008008381|2008008382|2008008383|2008008384|2008008385|2008008381|2008008382|2008008388|2008008389|2008008393

例如这一段
如何去掉重复的编号
...全文
135 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
用正则的方法
代码是少不少
一次性

我试试
cloudgamer 2009-04-16
  • 打赏
  • 举报
回复
都用数组?
我觉得正则比较方便哦
我的方法是
re=/((^|\|)(\d+)(\|\d+)*?)\|\3/
while(re.test(s)){
s=s.replace(re,"$1")
}
不知有没有不用test的方法
阿云ivan 2009-04-16
  • 打赏
  • 举报
回复
function filterReduplicated(strArr) {
var arr = strArr.split(/\|/);
var resultArr = [];
for (var i = 0; i < arr.length; i++) {
var existed = false;
for (var j = 0; j < resultArr.length; j++) {
if (resultArr[j] == arr[i]) {
existed = true;
break;
}
}
if (existed) continue;
resultArr.push(arr[i]);
}
return resultArr.join('|');
}


var str = "2008008381|2008008382|2008008383|2008008384|2008008385|2008008381|2008008382|2008008388|2008008389|2008008393";
var resultString = filterReduplicated(str);
alert(resultString);
xiongzhijian 2009-04-16
  • 打赏
  • 举报
回复

var str = '2008008381|2008008382|2008008383|2008008384|2008008385|2008008381|2008008382|2008008388|2008008389|2008008393 ';
var temp = str.split('|');
var result = [];
var oo = {};
for(var i in temp)
{
if(!oo[temp[i]])
{
result.push(temp[i]);
oo[temp[i]] = temp[i];
}
}
alert(result.join('|'));
cloudgamer 2009-04-16
  • 打赏
  • 举报
回复
最好是用正则
比较方便
((^|\|)(\d+)(\|\d+)*?)\|\3
这个的话要多次替换
不知有没有一次就可以的呢
  • 打赏
  • 举报
回复
2楼的那个一改就是JS的
  • 打赏
  • 举报
回复
……

才发现是在JS版里
  • 打赏
  • 举报
回复
还可以

<script   language="javascript"   runat=server> 
function delnum(num)
{
var strTextArr=num.toString().split("|").sort();
return strTextArr.unique().join("|");
}
Array.prototype.unique = array_unique;
function array_unique()
{
var o = new Object();
for (var i=0,j=0; i<this.length; i++)
{
if (typeof o[this[i]] == 'undefined')
{
o[this[i]] = j++;
}
}
this.length = 0;
for (var key in o)
{
this[o[key]] = key;
}
return this;
}

</script>
<%
str = "2008008381|2008008382|2008008383|2008008384|2008008385|2008008381|2008008382|2008008388|2008008389|2008008393"
Response.Write delnum(str)
%>
  • 打赏
  • 举报
回复
str = "2008008381|2008008382|2008008383|2008008384|2008008385|2008008381|2008008382|2008008388|2008008389|2008008393"
str_a = Split(str, "|")
Set dic = CreateObject("Scripting.Dictionary")
For i=0 To UBound(str_a)
If Not dic.exists(str_a(i)) Then
dic.Add str_a(i),str_a(i)
End If
Next
arr =dic.Items()
Set dic = Nothing


87,915

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧