2013-07-02 5 views
0

У меня есть строка:Позиция символа в строке

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

Теперь я хочу позицию «а» (алфавит) в этой строке аналогично у меня есть еще несколько строк, как это:

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 

любая помощь будет оценена. спасибо.

ответ

12

Как просто, как

str.indexOf('a') + 1 

для произвольного нецифры характера это может быть

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

для последнего нецифры характера с последующим 0..inf цифровых символов:

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

я мог бы иметь какой-либо алфавит, то как я могу найти его – Irfan

+0

@Irfan: приведите пример для этого – zerkms

+2

@zerkms: Я собирался опубликовать это решение 'match'. +1 – elclanrs

2

просто используйте индексOf способ.

var str1 = "1234567a45"; 
alert(str1.indexOf("a") + 1); // alerts 8 
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 
+0

У меня нет специально, у меня могут быть разные алфавиты из (az), тогда hoo я бы узнал индекс (любой алфавит) из строки. – Irfan

0

Вот небольшой Codesnippet, который должен решить вашу проблему.

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

С уважением, Мириам

+0

Пожалуйста, никогда не используйте единственную букву 'l' для переменной - во многих шрифтах она почти или полностью неотличима от числа' 1'. –

+0

@SoftwareMonkey: О, я этого не замечаю. Спасибо за советы! Я изменю код выше. – MiBrock

+0

«... просто пример ...» - я бы сказал, что еще более важно, чтобы он был высшего качества. Но я такой анальный. –

Смежные вопросы