Вход

Просмотр полной версии : работа со строками в IE8


rimdus
03.09.2010, 19:43
Коллеги, сел за js пару дней назад, до этого плотничком на delphi. В одной книге прочитал, что для pascal'цев js - головная боль, но мы ж оптимисты, в плохое не верим )))
В общем столкнулся с проблемой... нужно парсить текстовую строку...
Пример функции привожу ниже... в инете везде пишут, что можно обращаться к строке так str[0] и т.д., но реально не работает, грит, что str[i] = udefined. Как вытащить из строки ее символы? Как и обещал пример ниже.

function ExtractFileName(Str1) {
for (i = Str1.length; i>=0; i--) {
if (Str1[i] == 'a') {
alert(Str1[i]);
}

}

}

exec
03.09.2010, 19:45
str.charAt(i);

rimdus
03.09.2010, 20:10
str.charAt(i);

Парни, спасибо, конечно, но вопрос был несколько "между строк", почему такая хрень выходит??? в MS здравый смысл не вкуривают???

Например можно так
str1.substr(i, i+1) либо как вы предложили...


Вопрос выше )))

Sweet
03.09.2010, 20:25
почему такая хрень выходит???
Потому, что ie:var s = 'YO! I USE CHROME OPERA 9 OR FIREFOX'
alert(s[s.length-1] + s[0] + s[6] + s[11] + s[23])

Kolyaj
04.09.2010, 15:49
но вопрос был несколько "между строк"
Ответ тоже был между строк: используйте кроссбраузерные решения. Браузеров много, что-то где-то работает, где-то не работает.

float
04.09.2010, 15:52
Не совсем понял что там с ие. Но в коде выше ошибка.
function ExtractFileName(Str1) {
for (i = Str1.length; i>=0; i--) {
if (Str1[i] == 'a') {
alert(Str1[i]);
}

Нехер выпендриваться с обратными циклами.
Строка массив 0-9(скажем). str.length = 10.
Obviously udefined.