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.
|
|
23.09.2012, 13:19
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Сообщение от Арман
|
res_match
|
Если вы хотите сделать из этой переменной регулярку точно соответсвующую этой строке, то надо в ней все экранировать - точки, слеши, скобки всех мастей
|
|
23.09.2012, 15:42
|
Профессор
|
|
Регистрация: 31.05.2012
Сообщений: 396
|
|
Gvozd правильно сказал, но если нужно проверить, не начинается ли строка з заданной подстроки, то лучше для этого использовать обычный цикл, а не регулярку.
|
|
23.09.2012, 15:46
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,577
|
|
Сообщение от oneguy
|
использовать обычный цикл, а не регулярку.
|
Вы имели ввиду обычный indexOf?
__________________
29375, 35
|
|
23.09.2012, 16:03
|
Профессор
|
|
Регистрация: 31.05.2012
Сообщений: 396
|
|
Сообщение от Aetae
|
Вы имели ввиду обычный indexOf?
|
Нет, цикл for или while.
|
|
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.
|
|
23.09.2012, 16:53
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Чем ответ Gvozd Вас не устраивает? И что находится в res_match?
|
|
23.09.2012, 17:27
|
Профессор
|
|
Регистрация: 31.05.2012
Сообщений: 396
|
|
Сообщение от Арман
|
Ответ:
1 if(str.toLowerCase().indexOf(res_match.toLowerCase ()) == 0)
2 {
3 //
4 }
|
Мен кажется, так делать обычно хуже, поскольку если подстрока не будет найдена вначале, то indexOf будет её искать по всей строке, что является лишней тратой процессорного времени.
|
|
23.09.2012, 17:28
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от Арман
|
ничего не знаете ?)
Форум javascript)
Вторая тема, и от таких бредовых ответов больше и спрашивать тут ничего не хочется...
|
да, вали, скатертью дорожка, раз ума много, не надо было даже и начинать спрашивать, а спрашивать, чтобы потом сказать, какие все тупые, для этого у нас есть президент (сейчас в заслуженном отпуске)
|
|
23.09.2012, 17:37
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
лажанул с +, буду исправляться
UPD: исправился
Последний раз редактировалось bes, 23.09.2012 в 17:49.
|
|
|
|