Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> replace vs substring, выбор метода 
:(
    Опции темы
Alx
Дата 18.4.2007, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



воть) какой метод лучше и почему?) вроде regexp логичнее, но substring должно быть быстрее.
(задача - увеличить на 1 последнюю цифру в строке)
Код

<script>
var n = '1_1_2_2_3'
alert(n.substring(0,n.length-1)+(parseInt(n.substring(n.length-1))+1));
alert(n.replace(/(\d)\b/ig,function myfunc(m){return parseInt(m)+1;}));
// returns 1_1_2_2_4
</script>



--------------------
PM MAIL WWW ICQ   Вверх
Zeroglif
Дата 19.4.2007, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(Alx @  18.4.2007,  22:12 Найти цитируемый пост)
какой метод лучше и почему

Все хорошие.  smile  Сабстринг плох, когда исходная строка динамична, нужна проверка и проч., а иначе он нарежет чего-нибудь весёлое. Риплейс метод мощный, хорош в динамике, но требует знаний  и иногда (не часто) медленный. Я бы остановился на нём. Если сильно важна скорость, то нужно практически проверить каждое решение под свою задачу, вполне возможно, что быстрее всего (особенно на больших строках) окажется, к примеру, что-нибудь вроде split+join:

Код

var n = '1_1_2_2_3', a = n.split('_'), l = a.length;
a[l-1] = +a[l-1] + 1;
a = a.join('_');

p.s. переводить в число через parseInt не обязательно, \b в регулярном известен глюками.

Это сообщение отредактировал(а) Zeroglif - 19.4.2007, 01:15
PM MAIL WWW   Вверх
Alx
Дата 19.4.2007, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



ок, спасибо smile

Цитата(Zeroglif @  19.4.2007,  01:13 Найти цитируемый пост)
\b в регулярном известен глюками.

заменить на $?


--------------------
PM MAIL WWW ICQ   Вверх
Zeroglif
Дата 19.4.2007, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(Alx @  19.4.2007,  01:25 Найти цитируемый пост)
заменить на $?

Угу.

PM MAIL WWW   Вверх
Alx
Дата 19.4.2007, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



ps - первый способ лучше заменить на
Код
alert(n.substring(0,n.lastIndexOf('_')+1)+(parseInt(n.substring(n.lastIndexOf('_')+1))+1));

наверное


--------------------
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0480 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.