触摸屏租赁
Touch screen rental
广告机租赁
Advertising rental
机器人租赁
Robot leasing
 当前位置:首页 > 全部 > 如何过滤掉重复字符?

例字符串:
44,46,46,100,100,11
在这里出现了4个数字:11,44,46,100
现在该字符串出现的数字数目不固定,出现的数字不固定,重复出现的次数不固定,如也可能出现:44,46,53,46,44,46,72
该如何使例中的字符简化为:44,46,100,11,即出现的数字只出现一次,不重复?

<SCRIPT LANGUAGE="JAVASCRIPT">
function check(str){
  Re = /(^|,)(\d+),(.*,)?(\2)(?:,|$)/ig;//匹配有重复数字的正则表达式
  if(Re.test(str)){//验证是否有重复数字
    outstr = str.replace(Re,"$1$2,$3");//过滤重复的数字
    check(outstr);//递归验证过滤
    return(outstr);//返回中间结果
  }
  else{
    Re = /,$/;//匹配最后逗号的正则表达式
    outstr = str.replace(Re,"");//去掉最后的逗号
    return(outstr);//返回最后结果
  }
}

</SCRIPT>
<input type="text" size="30" name="txt" value="1,2,34,128,3,34,6,5,3,3,34,8">
<input type="button" value="过滤重复的数字" onclick="javascript:alert(check(txt.value))">

=================================

写成asp

<%
Function check(instring)'过滤函数
  Dim objRegExp'定义变量
  Set objRegExp = new RegExp'建立正则对象
  objRegExp.IgnoreCase = True'忽略大小写
  objRegExp.Global = True'设定全局可用性
  objRegExp.Pattern = "(^|,)(\d+),(.*,)?(\2)(?:,|$)"'匹配有重复数字的正则表达式
  If objRegExp.test(instring) Then'验证是否有重复数字
    outstr = objRegExp.replace(instring,"$1$2,$3")'过滤
    check = check(outstr)'递归并返回过滤的中间结果
  Else
    objRegExp.Pattern = ",$"'匹配最后逗号的正则表达式
    outstr = objRegExp.replace(instring,"")'去掉最后的逗号
    check = outstr'返回过滤的最后结果
  End If
End Function
%>

<%
=check(Request.Form("txt"))%>

=================================

分割符不是","而是"|"该怎么写?

变成"|"好做,将第一个正则表达式变为:
(^|\|)(\d+)\|(.*\|)?(\2)(?:\||$)
第二个正则表达式变为:
\|$

"$1$2|$3"


工作室地址:重庆石桥铺电脑城B座 | 微信:z35544216 | 网址:www.35544216.com