Как проверить что подстрока, в конкретной позиции, соответствует указанной строке?
Здравствуйте! Никак не могу разобраться.
Как при помощи регулярных выражений проверить: Соответствует ли подстрока внутри указанной строки, начиная с конкретного символа, но не дальше него, указанному шаблону? т.е. Как узнать есть ли совпадения конкретно в указанной позиции, не сканируя всю строку целиком. var str="0123456789text4567test"; var reg = new RegExp("text",""); reg.lastIndex=10; if( reg.test(str) ){ //вернет истину даже если в указанной изначально позиции нет совпадений, он обнаружит это совпадение далее, мне этого не нужно } ВОПРОС: как теперь проверить что подстрока (строки str), начиная исключительно с конкретного символа, то что дальше этого символа нас не волнует. Дело в том что метод test сканирует строку от начиная от указанного символа, и продолжает искать совпадения до конца строки. но нам это ненужно, нас не волнует есть ли там дальше совпадения - нам нужно узнать есть ли совпадение в указанной позиции |
Во-первых, у строк есть метод .search, который возвращает позицию:
alert( "0123456789text4567test".search( /text/ ) ); Во-вторых, можно составить соответствующую регулярку, типа того: alert( /^.{5,10}text/.test( "0123456789text4567test" ) ); |
search выполняет поиск, ищет слева на право, а мне по сути необходимо сравнение вот какое:
if( str.substring(10, 4) == 'data'){ }; только тоже самое тока на регулярных выражениях не знаю как сделать.... |
У строк есть еще метод .indexOf, в котором можно указать позицию, с которой начинается поиск.
alert( checkSubstring( "0123456789text4567test", "text", 10 ) ); function checkSubstring( string, value, position ){ return string.indexOf( value, position ) == position; }; |
Часовой пояс GMT +3, время: 07:59. |