首先用match方法把{0},{1},{2}匹配出一个数组来(比如这里可以匹配出数组[0,1,2])
然后迭代判断数组里的数字是否符合要求

解决方案 »

  1.   


      <script>
      
        var t1="This is {0},{1},{2}"; 
    var t2=t1.split('{');
    var sum=0;
    for(var i=0;i<t2.length;i++)
    {
    var k=t2[i].indexOf('}');
    if(k>-1)
    {
    sum++;//用于统计有多少个{}
    alert(t2[i].substring(0,k));
    }
    }
      </script>
      

  2.   


      <script>
    String.prototype.trim = function()
    {
    return this.replace(/(^s*)|(s*$)/g, "");
    }// 从0开始,并且是连贯的 return true ; else return false
    function checkString(str) {
        var arr=str.split('{');
        var c = 0;
        for(var i=0;i<arr.length;i++)
        {
            var k=arr[i].indexOf('}');
            if (k>0) 
            {
               if (arr[i].substring(0,k).trim()!=c) return false;
               c++;
            }
        }
        return true;
    }
        var s1="This is {0},{1},{2}"; 
    alert(checkString(s1));
      </script>
      

  3.   

    var str = 'This is {01234},{013},{12}';
    var arr = [];str.replace(/\{(0\d*)\}/gi,function(_match,node,index){
    arr.push(node);
    });var count = arr.length; //统计个数function createValidateCode(len){
    var arr_tem = [];
    len--;
    while(len >= 0)
      arr_tem.push(len--);
    return arr_tem.reverse().join('');
    }

    for(var i = 0;i < count;i++)
    {
    if(arr[i] === createValidateCode(arr[i].length))
    alert(arr[i]+"是合法的字符串");
    }

    不知道是否符合要求...请指教
      

  4.   


    呵呵。。你理解错了。不过大体思路是这样的gengzhw 的回复是完整的~~
    谢谢了
      

  5.   

    呵呵,挺有意思的,我也写一个函数试试<script type="text/javascript">function test(str)
    {
    var reg = /This\sis\s((:?\{\d+\}\s*,*\s*)+)/; var result = str.match(reg);

    //如果正则匹配不到,返回0
    if(!result) return 0;

    var a = result[1].split(/\}\s*,*\s*\{/);


    //如果不是0开始,返回0
    if(a[0] != "{0") return 0;
    a[0] = 0;
    a[a.length-1] = parseInt(a[a.length-1]);

    for(var i=1; i<a.length; i++)
    {
       //如果不是递增,返回0
    if(a[i] - a[i-1] != 1) return 0;
    }

    //返回个数
    return a.length;
    }alert(test("This is {0},{3}")); //display 0
    alert(test("This is {0},{1},{2}, {3}, {4},{5},{6},{7},{8},{9},{10},{11}")); //display 12
    </script>