0

我有一个字符串:

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

4 回答 4

12

简单到

str.indexOf('a') + 1

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

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

对于最后一个非数字字符后跟0..inf数字字符:

str.match(/\D\d*$/).index + 1
于 2013-07-02T05:04:40.773 回答
2

只需使用 indexOf 方法。

var str1 = "1234567a45";
alert(str1.indexOf("a") + 1); // alerts 8 
于 2013-07-02T05:05:03.990 回答
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
于 2013-07-02T05:05:45.823 回答
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

问候,米里亚姆

于 2013-07-02T07:01:32.440 回答