Имеется регклярное выражение:
/(?<=")[^"]*(?=")|(?<=')[^']*(?=')/g
Которое Chrome воспринимает без каких-либо проблем, в то время как Mozilla Firefox выдёт ошибку:
SyntaxError: invalid regexp group
Сначала подумал, что Mozilla не умеет в Lookaround и чтобы удостовериться подёргал консольку в DevTool'е Firefox. Однако регулярки типа lookahead:
/(?=Something...)/
Воспринимает нормально, в то время как на регулярки lookbehind:
/(?<=Something...)/
Не хочет кушать ни в какую. То ли Mozilla ещё не допилила поддержку Lookaround, то ли это я, кодообезьяна, пишу кривые регулярки.
Используйте группы захвата с методом RegExp#exec(String)
в цикле:
var s = "Строки \"Результат 1\" и 'Результат 2'";
var reg = /"([^"]*)"|'([^']*)'/g;
var results=[], m;
while (m=reg.exec(s)) {
results.push(m[1] || m[2]);
}
console.log(results);
Можно воспользоваться тем, что мы знаем, что с обеих сторон будут ненужные нам кавычки и упростить код до
var s = "Строки \"Результат 1\" и 'Результат 2'";
var reg = /"([^"]*)"|'([^']*)'/g;
var results= s.match(reg).map(function(x) { return x.substr(1, x.length-2); });
console.log(results);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Нужно сделать так, чтобы можно было при помощи взять информацию из файла, который я выберу, а не заранее указывать в коде
Пытаюсь разобраться в промисах и async/awaitНашёл на хабре этот пример:
Как пронумеровать все абзацы страницы и добавить номер ПЕРЕД текстом абзацев, а не после ?