Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.09.2012, 12:09
Интересующийся
Посмотреть профиль Найти все сообщения от Арман
 
Регистрация: 08.04.2011
Сообщений: 10

Регулярка ...
Всем привет!

Проблема такого рода:
произвожу поиск по началу строки:
var pattern = new RegExp('^'+res_match, 'i');
if(pattern.test(str))
{
   ///
}

Но если встречается точка в строке, то регулярка не срабатывает.
Пробовал так:
str = 'ar.man';
if(pattern.test(str.replace(/\./g, '\\.')))
{
   //
}

но тщетно.
Может подскажет кто ?
if(str.search(pattern) != -1)
тоже не работает, если точка в строке попадается.

Последний раз редактировалось Арман, 23.09.2012 в 12:17.
Ответить с цитированием
  #2 (permalink)  
Старый 23.09.2012, 13:19
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Арман
res_match
Если вы хотите сделать из этой переменной регулярку точно соответсвующую этой строке, то надо в ней все экранировать - точки, слеши, скобки всех мастей
Ответить с цитированием
  #3 (permalink)  
Старый 23.09.2012, 15:42
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Gvozd правильно сказал, но если нужно проверить, не начинается ли строка з заданной подстроки, то лучше для этого использовать обычный цикл, а не регулярку.
Ответить с цитированием
  #4 (permalink)  
Старый 23.09.2012, 15:46
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,518

Сообщение от oneguy Посмотреть сообщение
использовать обычный цикл, а не регулярку.
Вы имели ввиду обычный indexOf?
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 23.09.2012, 16:03
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Сообщение от Aetae
Вы имели ввиду обычный indexOf?
Нет, цикл for или while.
Ответить с цитированием
  #6 (permalink)  
Старый 23.09.2012, 16:30
Интересующийся
Посмотреть профиль Найти все сообщения от Арман
 
Регистрация: 08.04.2011
Сообщений: 10

Сообщение от oneguy
если нужно проверить, не начинается ли строка з заданной подстроки, то лучше для этого использовать обычный цикл, а не регулярку.

Вы, наверно, кроме
Сообщение от oneguy Посмотреть сообщение
цикл for или while
ничего не знаете ?)
Форум javascript)
Вторая тема, и от таких бредовых ответов больше и спрашивать тут ничего не хочется...

Ответ:
if(str.toLowerCase().indexOf(res_match.toLowerCase()) == 0)
{
   //
}

Последний раз редактировалось Арман, 23.09.2012 в 16:34.
Ответить с цитированием
  #7 (permalink)  
Старый 23.09.2012, 16:53
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Чем ответ Gvozd Вас не устраивает? И что находится в res_match?
Ответить с цитированием
  #8 (permalink)  
Старый 23.09.2012, 17:27
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Сообщение от Арман
Ответ:
1 if(str.toLowerCase().indexOf(res_match.toLowerCase ()) == 0)
2 {
3 //
4 }
Мен кажется, так делать обычно хуже, поскольку если подстрока не будет найдена вначале, то indexOf будет её искать по всей строке, что является лишней тратой процессорного времени.
Ответить с цитированием
  #9 (permalink)  
Старый 23.09.2012, 17:28
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Арман
ничего не знаете ?)
Форум javascript)
Вторая тема, и от таких бредовых ответов больше и спрашивать тут ничего не хочется...
да, вали, скатертью дорожка, раз ума много, не надо было даже и начинать спрашивать, а спрашивать, чтобы потом сказать, какие все тупые, для этого у нас есть президент (сейчас в заслуженном отпуске)
Ответить с цитированием
  #10 (permalink)  
Старый 23.09.2012, 17:37
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

лажанул с +, буду исправляться
UPD: исправился

Последний раз редактировалось bes, 23.09.2012 в 17:49.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
регулярка в яваскрипте (проверка совпадении) dadli Общие вопросы Javascript 4 24.02.2012 04:21
регулярка для парсинга SQL запроса Yurik Общие вопросы Javascript 2 09.12.2011 15:08
Регулярка на дробные числа shkarbatov Javascript под браузер 14 29.07.2011 01:05
регулярка по BB кодам Sergej Серверные языки и технологии 2 21.04.2011 13:29
Странно работает регулярка в JS _axl Общие вопросы Javascript 12 11.03.2011 23:39