本帖最后由 andrewnext 于 2013-05-28 23:42:14 编辑

解决方案 »

  1.   

    ("+"+valueTextLine+"+").indexOf("+"+valueLine+"+")!=-1
      

  2.   


    我感觉有点奇怪,这样就可以了吗? 感觉还是有点小问题, 那如果当你的串是第一个元素的时候呢 或者最后一个元素呢 都会少一个+ 号,这样应该是匹配不到的吧,中间的话应该是没问题,
    感觉 还是用split 分割后循环值完全进行匹配这样最准确。
      

  3.   

    /(^1\+)|(\+1\+)|(\+1$)/g.test("11+23+111+33")
    把test左侧的1替换为你的新值  右侧是你那一串的字符串
      

  4.   


    我感觉有点奇怪,这样就可以了吗? 感觉还是有点小问题, 那如果当你的串是第一个元素的时候呢 或者最后一个元素呢 都会少一个+ 号,这样应该是匹配不到的吧,中间的话应该是没问题,
    感觉 还是用split 分割后循环值完全进行匹配这样最准确。
    哥们真心可以了 下面是整快js代码 你可以试一试
      function addLine() {
                var valueTextLine = getInput("TextLine");
                var valueLine = getInput("Line");
                //如果选择全部,则清空以前添加的,然后添加上全部
                if (valueLine == "全部")
                    setInput("TextLine", valueLine);
                else {
                    //如果valueTextLine是全部,则清空,然后添加现在的。
                    if (valueTextLine == "全部")
                        setInput("TextLine", "");
                    //if (valueTextLine.indexOf(valueLine) == -1) {
                    if (("+" + valueTextLine + "+").indexOf("+" + valueLine + "+") == -1) {
                        if (getInput("TextLine") == "")
                            setInput("TextLine", valueLine);
                        else
                            setInput("TextLine", getInput("TextLine") + "+" + valueLine);
                    }
       
                }
            }
      

  5.   


    我感觉有点奇怪,这样就可以了吗? 感觉还是有点小问题, 那如果当你的串是第一个元素的时候呢 或者最后一个元素呢 都会少一个+ 号,这样应该是匹配不到的吧,中间的话应该是没问题,
    感觉 还是用split 分割后循环值完全进行匹配这样最准确。
    没见valueTextLine的前后增加的"+"号的么,这样就不会有问题了
      

  6.   


    我感觉有点奇怪,这样就可以了吗? 感觉还是有点小问题, 那如果当你的串是第一个元素的时候呢 或者最后一个元素呢 都会少一个+ 号,这样应该是匹配不到的吧,中间的话应该是没问题,
    感觉 还是用split 分割后循环值完全进行匹配这样最准确。其实我开始的时候用了spit 没效果 不到为毛 就下面这段代码    function ishaveone() {
                var value = false;
                var valueone = valueTextLine.split("+");
                for (var i = 0; i < valueone.length; i++) {
                    if (TextLine == valueone[i]) {
                        value = true;
                    }
                }
                return value;
            }
      

  7.   


    我感觉有点奇怪,这样就可以了吗? 感觉还是有点小问题, 那如果当你的串是第一个元素的时候呢 或者最后一个元素呢 都会少一个+ 号,这样应该是匹配不到的吧,中间的话应该是没问题,
    感觉 还是用split 分割后循环值完全进行匹配这样最准确。其实我开始的时候用了spit 没效果 不到为毛 就下面这段代码    function ishaveone() {
                var value = false;
                var valueone = valueTextLine.split("+");
                for (var i = 0; i < valueone.length; i++) {
                    if (TextLine == valueone[i]) {
                        value = true;
                    }
                }
                return value;
            }
    可以啊var valueTextLine = "89+57+55+44";
    var TextLine = "55";
        function ishaveone() {
                var value = false;
                var valueone = valueTextLine.split("+");
                for (var i = 0; i < valueone.length; i++) {
                    if (TextLine == valueone[i]) {
                        value = true;
                    }
                }
                return value;
            }
    alert(ishaveone());
      

  8.   

    /(^1\+)|(\+1\+)|(\+1$)/g.test("11+23+111+33")
    这个稍微改一下就可以很灵活啦
    var num = 1;
    var reg = new RegExp("(^" + num + "\+)|(\+" + num + "\+)|(\+" + num + "$)");
    if(reg.test("11+23+111+33"))
    {
    }
      

  9.   

    涨姿势!/(^1\+)|(\+1\+)|(\+1$)/g.test("11+23+111+33"),说实话,不懂正则
      

  10.   


    我感觉有点奇怪,这样就可以了吗? 感觉还是有点小问题, 那如果当你的串是第一个元素的时候呢 或者最后一个元素呢 都会少一个+ 号,这样应该是匹配不到的吧,中间的话应该是没问题,
    感觉 还是用split 分割后循环值完全进行匹配这样最准确。
    没见valueTextLine的前后增加的"+"号的么,这样就不会有问题了是的,那天确实没怎么仔细看,这样前后+了这个去判断是没问题的。
      

  11.   

    再给你简化下:/^(\d+\+)*33(\+\d+)*$/g.test("11+23+111+333")
      

  12.   

    var num = 1;
    var reg = new RegExp("^(\d+\+)*" + num + "(\+\d+)*$");
    if(reg.test("11+23+111+33"))
    {
    alert("已经有了");
    }