字符在字符串中的位置

时间:2013-07-02 05:03:22

标签: javascript

我有一个字符串:

var str = "u12345a45";//position is 7 here

现在我希望该字符串中的'a'(字母)位置 同样我还有更多这样的字符串:

var  str1 = "u1234567a45";//position is 9 here
var str2 = "u12345b4";//position of b is 7 here
var str3 = "u123c";//position of c is 5 here
var str4 = "u3d45";//position of d is 2 here

现在我想做的是,只是从上一次搜索字符串,并知道该字符串中任何字母表的出现一次。

注意:它可能是字符串中的任何字母:

var str5 = "u2233b45";//position of b is 6 here
var str6 = "u22333f45";//position of f is 7 here

任何帮助将不胜感激。 感谢。

4 个答案:

答案 0 :(得分:12)

就像

一样简单
str.indexOf('a') + 1

对于任意非数字字符,它可以是

str.match(/\D/).index + 1

表示最后一位非数字字符,后跟0..inf个数字字符:

str.match(/\D\d*$/).index + 1

答案 1 :(得分:2)

只需使用indexOf方法。

var str1 = "1234567a45";
alert(str1.indexOf("a") + 1); // alerts 8 

答案 2 :(得分:0)

您可以使用JavaScript的indexOf方法。

var pos1 = str1.indexOf('a'); // will equal 7
var pos2 = str2.indexOf('a'); // will equal 5
var pos3 = str3.indexOf('a'); // will equal 3
var pos4 = str4.indexOf('a'); // will equal 0

答案 3 :(得分:0)

这是一个小型的代码片段,可以解决您的问题。

var str1= "12345t45";
        var str1Length = str1.length;
        for(var a=0; a<str1Length ;a++){
            if(isNaN(str1.substring(a,a+1))){
                alert(str1.substring(a,a+1)+' at Position : '+(a+1));
            }
        }

我通过字符串检查实际位置是字母还是数字。如果这是一封信,我会把他写进警报。在这个案例中,警报说:'t'位于:6

此致,Miriam