比如:var aa="abcdeafghijaklmn";我想知道 字符 a  在aa这个字符串第二次出现的位置是多少比如说这个a第二次出现是在第5位,怎么用js得出来

解决方案 »

  1.   

    [code=JScrip]
    var str = 'abcdeafghijaklmn';
    var find = 'a';//表示要找的字符
    var flag = 2;//表示第几次出现
    for(var i=0;i<str.length;i++){
        if(str.charAt(i)==find)
            flag--;
        if(flag==0){
            alert(i);
            break;
        }
    }
    [/code]
      

  2.   

    正则式似乎也行var str = 'abcdeafghijaklmn';
    if(/(a).*?\1/.exec(str))
        alert(str.length - RegExp.rightContext.length-1)
      

  3.   

    [code=JScrip]var aa="22abcdeafghijaklmn";
    var regex = /.*?a.*?a/i;
    var length = regex.exec(aa).toString().length;
    alert(length)[/code]
      

  4.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <script>
    function abc()
    {
        var aa="abcdeafghijaklmn";
        var n=0;
        for(var i=0;i<aa.length;i++)
            if(aa.charAt(i)=='a')
                if(++n==2)
                {
                    alert(i);
                    break;
                }
    }
    </script>
    </head>
    <body>
    <script>abc()</script>
    </body>
    </html>
      

  5.   

    [code=JScrip]
    // str: 是你的原字符串
    // searchfor: 是你的要找的字符串
    // count: 寻找的次数
    function getPosition(str,searchfor,count)
    {
        var re = new RegExp(searchfor,"g");    while(count--){
            re.test(str);
        }
        var pos = re.lastIndex-searchfor.length;
        if(pos < 0)
            return "找不到";
        else
            return pos;
    }
    alert(getPosition("abcdeafghijaklmn","a",2));
    [/code]这个函数的唯一好处在于你要寻找的可以是字符,也可以是字符串例如
    alert(getPosition("abcdeafghijabcklmn","abc",2)); //  返回第二次出现abc字符串的位置
      

  6.   

    [code=JScrip]
    // str: 是你的原字符串 
    // searchfor: 是你的要找的字符串 
    // count: 寻找的次数 
    function getPosition(str,searchfor,count) 

        var re = new RegExp(searchfor,"g");     while(count--){ 
            re.test(str); 
        } 
        var pos = re.lastIndex-searchfor.length; 
        if(pos < 0) 
            return "找不到"; 
        else 
            return pos; 

    alert(getPosition("abcdeafghijaklmn","a",2));
    [/code]这个函数的唯一好处在于你要寻找的可以是字符,也可以是字符串例如
    alert(getPosition("abcdeafghijabcklmn","abc",2)); // 返回第二次出现abc字符串的位置
      

  7.   

    var aa="abcdeafghijaklmn";
    var reg = /a[^a]*a/g;
    if (reg.test(aa)) alert(reg.lastIndex-1);