Javascript.RU

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

Как проверить что подстрока, в конкретной позиции, соответствует указанной строке?
Здравствуйте! Никак не могу разобраться.

Как при помощи регулярных выражений проверить:
Соответствует ли подстрока внутри указанной строки,
начиная с конкретного символа, но не дальше него,
указанному шаблону?

т.е.
Как узнать есть ли совпадения конкретно в указанной позиции, не сканируя всю строку целиком.

var str="0123456789text4567test";

var reg = new RegExp("text","");
reg.lastIndex=10;

if( reg.test(str) ){
   //вернет истину даже если в указанной изначально позиции нет совпадений, он обнаружит это совпадение далее, мне этого не нужно
}


ВОПРОС: как теперь проверить что подстрока (строки str),
начиная исключительно с конкретного символа, то что дальше этого символа нас не волнует.

Дело в том что метод test сканирует строку от начиная от указанного символа, и продолжает искать совпадения до конца строки. но нам это ненужно, нас не волнует есть ли там дальше совпадения
- нам нужно узнать есть ли совпадение в указанной позиции
Ответить с цитированием
  #2 (permalink)  
Старый 03.10.2011, 11:51
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Во-первых, у строк есть метод .search, который возвращает позицию:
alert( "0123456789text4567test".search( /text/ ) );

Во-вторых, можно составить соответствующую регулярку, типа того:
alert( /^.{5,10}text/.test( "0123456789text4567test" ) );
Ответить с цитированием
  #3 (permalink)  
Старый 03.10.2011, 13:47
Аспирант
Отправить личное сообщение для aRpi Посмотреть профиль Найти все сообщения от aRpi
 
Регистрация: 17.04.2011
Сообщений: 37

search выполняет поиск, ищет слева на право, а мне по сути необходимо сравнение вот какое:
if( str.substring(10, 4) == 'data'){

};

только тоже самое тока на регулярных выражениях не знаю как сделать....
Ответить с цитированием
  #4 (permalink)  
Старый 03.10.2011, 14:22
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

У строк есть еще метод .indexOf, в котором можно указать позицию, с которой начинается поиск.
alert( checkSubstring( "0123456789text4567test", "text", 10 ) );

function checkSubstring( string, value, position ){
  return string.indexOf( value, position ) == position;
};
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 21:24
О фрилансе (Личный опыт) free Оффтопик 105 18.08.2011 17:02
Как проверить что сервер безошибочно выполнил запрос php? PAMAC Серверные языки и технологии 7 20.02.2010 09:10