Подстрока индекса совпадения захвата регулярного выражения Javascript

KoT_B_Meshke

Пользователь
Регистрация
27.11.10
Сообщения
13
Реакции
0
Баллы
1
В этом примере я хочу захватить четвертое скрытие в S — это скрытие3;


Код:
window["getIndexValue"]=(...a)=>{ let string=a[0],substring=a[1],index=a[2]; let R=new RegExp("^((?:((?!"+substring+").)*"+substring+")){"+index+"}(?:((?!"+substring+").)*("+substring+"))"); let j=R.exec(string); return j[j.length-1];
}
console.log(getIndexValue("jhfisd5hdsfh5jhsodf5zdfgdf5fgsd5sdgsd","5[a-z]",3));
console.log(getIndexValue("jhfisd5hdsfh5jhsodf5zdfgdf5fgsd5sdgsd","5[a-z]",2)); 

Код (JavaScript): я могу создать для этого функцию в собственном JavaScript — ecmascript6.
Подстрока индекса совпадения захвата регулярного выражения Javascript
var S="gwrtgwhide0regwtrghide1erthgrthide2rtgbwtghide3ertghtrwhide4wertgerghide5ertghwrtghide6ewrtghwrtghide7wertgqew"; var j=/^((?:((?!hide\d).)*hide\d)){3}(?:((?!hide\d).)*(hide\d))/.exec(S); console.log(j[j.length-1]);
Код (JavaScript):
 

master-polymorphic

Пользователь
Регистрация
20.09.12
Сообщения
4
Реакции
0
Баллы
1
Это вопрос или утверждение? В любом случае ваше регулярное выражение выглядит болезненно и бессмысленно запутанным, а однобуквенные неописательные переменные никому не приносят никакой пользы... тем более глобальное присвоение мучительно загадочной стрелочной функции - мусор --- в этот момент просто объявите чертову функция. То же самое и с глупым использованием расширения, когда у вас есть только один параметр, который уже можно итерировать.

Вы пытаетесь сделать что-то подобное?

Код:
var
testString = 'gwrtgwhide0regwtrghide1erthgrthide2rtgbwtghide3ertghtrwhide4wertgerghide5ertghwrtghide6ewrtghwrtghide7wertgqew';
function findNumberSuffixedInString(needle, haystack, offset) {
var result = haystack.match(new RegExp('('+ needle + '\\d+)','g'));
if (!Number.isInteger(offset)) return result;
if (offset < 0) offset += result.length;
return result[offset];
}
console.log(findNumberSuffixedInString('hide', testString));
console.log(findNumberSuffixedInString('hide', testString, 3));
console.log(findNumberSuffixedInString('hide', testString, -3));
Код (разметка):
 

USW1

Пользователь
Регистрация
15.11.11
Сообщения
19
Реакции
1
Баллы
3
Если правда в том, что вы во всем правы, но я хотел научить этим выполнять сопоставление из одного и того же регулярного выражения без использования regexp.match из javascript, а путем выполнения самого регулярного выражения с использованием исключающих тегов (? i отрицание собственного исключения ((?! слово).) *, демонстрируя тем самым потенциал регулярных выражений, поскольку не все знают их потенциал. Мне также нравится использовать стрелочные функции, чтобы научить другому способу выполнения функций, в основном показывая части ECMASCRIPT6. и поэтому люди видят универсальность javascript. Это может быть сделано хуже или лучше, это зависит, но факт в том, что если бы вы хотели проиндексировать иглу из javascript, это можно было бы сделать разными способами, всеми из них. более или менее верно, по мнению того или иного программиста. Если бы я хотел просто использовать JavaScript, это было бы так же просто, как просто использовать разделение с начальными или конечными вариантами игл. В любом случае я ценю вашу точку зрения, это помогает мне совершенствоваться.
 
Сверху Снизу