第二个问题:
在msdn看到对split的描述如下[JScript]
public function Split(
   separator : Char[]
) : String[];然后它举例是
[JScript] 
import System;public class SplitTest {
    public static function Main() : void  {        var words : String = "this is a list of words, with: a bit of punctuation.";
        var separators : char[] = [' ', ',', '.', ':'];
        var split : String [] = words.Split(separators);        for (var i : int in split) {
            var s : String = split[i];
            if (s.Trim() != "")
                Console.WriteLine(s);
        }
    }
}
SplitTest.Main();
这肯定是在页面上没法跑的,我就于是我就改成function testSplit()  {
        var words  = "this is a list of words, with: a bit of punctuation.";
        var separators = [' ', ',', '.', ':'];
        var splitStr  = words.split(separators );        for (i in splitStr) {
            var s  = splitStr[i];
           alert(s);
        }
    }可是是跑不了,说语法错误??
而且我看拉实际例子,split()里面就放一个字符串
我改成放一个确实就好拉function testSplit()  {
        var words  = "this is a list of words, with: a bit of punctuation.";
        var separators = [' ', ',', '.', ':'];
        var splitStr  = words.split(":");        for (i in splitStr) {
            var s  = splitStr[i];
           alert(s);
        }
    }
,其实我就只是改成拉split(":"),放一个字符串
但是我要多个字符串来进行风格的时候呢??用正则表达式吗?
例如上面那个范例功能该如何实现呢,请大虾指教阿

解决方案 »

  1.   

    <script>
    var orignalUserDNs= "aa:bb:cc:dd:ee:";
    var userDNs= "ff:dd:bb:kk:aa"
    var removeUserDNs = orignalUserDNs.replace(eval('/'+userDNs.replace(/:/g, "|")+'/g'), '');
    removeUserDNs = removeUserDNs.replace(/:+/g, ':').replace(/^:|:$/g, '');
    alert(removeUserDNs);
    </script>
      

  2.   

    我看明白了,其实是差集问题,用":"分割为两个数组后,一切就明显了。
    用正则表达式的话,我很难想出来。思路最重要,我不想当coder,自己写啊
      

  3.   

    var orignalUserDNs= "aa:bb:cc:dd:ee";
    var userDNs= "ff:dd:bb:kk:aa";
    var r = new RegExp(":("+ userDNs.replace(/:/g, "|") +")(?=$|:)", "g");
    var s = (":"+ orignalUserDNs).replace(r, "").replace(/^:/, "");
    alert(s);唠叨的代码不够严谨 比如 var orignalUserDNs= "aa:bbm:cc:jkdd:ee";
      

  4.   

    xuzuning(唠叨)
    真乃牛人也我费拉不少劲才看懂下面我分解一下,反馈学习成果
    var orignalUserDNs= "aa:bb:cc:dd:ee:";
    var userDNs= "ff:dd:bb:kk:aa";
    var temp1=userDNs.replace(/:/g, "|")
    //这时temp1="ff|dd|bb|kk|aa"
    alert(temp1);
    //这时利用eval的特性,如果字符串是表达式形式,就执行这个表达式,这个其实shell里面也是有的
    // 其实我开始就卡在这里,都忘拉有eval拉
    //同时又利用拉"|"的特性,匹配几个字符串中任何一个.注意要有"g",才能global match,要不就只在匹配第一个后就停止拉
    var removeUserDNs = orignalUserDNs.replace(eval("/"+temp+"/g"),"");
    //var removeUserDNs = orignalUserDNs.replace(eval('/'+userDNs.replace(/:/g, "|")+'/g'), '');
    alert(removeUserDNs);
    //将removeUserDNs中的一个或多个":"全部(注意又要有g)都转化为一个":"
    var removeUserDNs=removeUserDNs.replace(/:+/g,":");
    alert(removeUserDNs);
    //去掉removeUserDNs中的位于行首与行尾的":",这个大家应该熟悉,因为去掉首尾空格一个常用功能
    var removeUserDNs=removeUserDNs..replace(/^:|:$/g, "");
    //removeUserDNs = removeUserDNs.replace(/:+/g,":").replace(/^:|:$/g, "");
    alert(removeUserDNs);总而言之,实在是佩服之至
    但是还是一个小问题,在javaScript中,""与''是相同的吗,我现在全部用"",也没出错喔?大虾能指教一下吗??
    关于code,哈哈,思想确实重要,但是语言本身的facility也应该熟悉吧,要不C++ primer宏宏巨猪
    不都是一堆堆的概念把,所以中庸之道乃是至道
      

  5.   

    真的是山外有山,人外有人
    刚刚佩服完一个,就????艾,小弟自己我为何这么菜
    不愧钻石极的大虾
    小弟实在是物体头地可是meizz(梅花雪)大虾
    var r = new RegExp(":("+ userDNs.replace(/:/g, "|") +")(?=$|:)", "g");
    这句实在是不懂阿
    能否详解一把阿
      

  6.   

    var orignalUserDNs= "aa:bb:cc:dd:ee";
    var userDNs= "ff:dd:bb:kk:aa";
    var r = new RegExp(":("+ userDNs.replace(/:/g, "|") +")(?=$|:)", "g");
    alert(r.source); //这是组织好的正则表达式,你自己看看
    var s = (":"+ orignalUserDNs).replace(r, "").replace(/^:/, "");
    alert(s);原理与唠叨的一样!
    ?=  是正向预查,判断需求测试的字符是否存在。对浏览器的版本要求有点高(IE5.5+)