Javascript.RU

Особенности регулярных выражений в Javascript

Update: Более новый материал по этой теме находится по адресу https://learn.javascript.ru/regexp-specials.

Регулярные выражения в javascript немного странные. Вроде - перловые, обычные, но с подводными камнями, на которые натыкаются даже опытные javascript-разработчики.

Эта статья ставит целью перечислить неожиданные фишки и особенности RegExp в краткой и понятной форме.

Общую информацию о регулярных выражениях в javascript вы можете найти в статье Регулярные выражения.

Для поиска в многострочном режиме почти все модификации перловых регэкспов используют специальный multiline-флаг.

И javascript здесь не исключение.

Попробуем же сделать поиск и замену многострочного вхождения. Скажем, будем заменять [u] ... [/u] на тэг подчеркивания: <u>:

function bbtagit(text) {
  text = text.replace(/\[u\](.*?)\[\/u\]/gim, '<u>$1</u>')
 
  return text
}

var line = "[u]мой\n текст[/u]"
alert( bbtagit(line) )

Попробуйте запустить. Заменяет? Как бы не так!

Дело в том, что в javascript мультилайн режим (флаг m) влияет только на символы ^ и $, которые начинают матчиться с началом и концом строки, а не всего текста.

Точка по-прежнему - любой символ, кроме новой строки. В javascript нет флага, который устанавливает мультилайн-режим для точки. Для того, чтобы заматчить совсем что угодно - используйте [\s\S].

Работающий вариант:

function bbtagit(text) {
  text = text.replace(/\[u\]([\s\S]*)\[\/u\]/gim, '<u>$1</u>')
 
  return text
}

var line = "[u]мой\n текст[/u]"
alert( bbtagit(line) )

Это не совсем особенность, скорее фича, но все же достойная отдельного абзаца.

Все регулярные выражения в javascript - жадные. То есть, выражение старается отхватить как можно больший кусок строки.

Например, мы хотим заменить все открывающие тэги <a>. На что и почему - не так важно.

text = '1 <A href="#">...</A> 2'
text = text.replace(/<A(.*)>/, 'TEST')
alert(text)

При запуске вы увидите, что заменяется не открывающий тэг, а вся ссылка, выражение матчит ее от начала и до конца.

Это происходит из-за того, что точка-звездочка в "жадном" режиме пытается захватить как можно больше, в нашем случае - это как раз до последнего >.

Последний символ > точка-звездочка не захватывает, т.к. иначе не будет совпадения.

Как вариант решения используют квадратные скобки: [^>]:

text = '1 <A href="#">...</A> 2'
text = text.replace(/<A([^>]*)>/, 'TEST')
alert(text)

Это работает. Но самым удобным вариантом является переключение точки-звездочки в нежадный режим. Это осуществляется простым добавлением знака "?" после звездочки.

В нежадном режиме точка-звездочка пустит поиск дальше сразу, как только нашла совпадение:

text = '1 <A href="#">...</A> 2'
text = text.replace(/<A(.*?)>/, 'TEST')
alert(text)

В некоторых языках программирования можно переключить жадность на уровне всего регулярного выражения, флагом.

В javascript это сделать нельзя.. Вот такая особенность. А вопросительный знак после звездочки рулит - честное слово.

Иногда нужно в самом паттерне поиска обратиться к предыдущей его части.

Например, при поиске BB-тагов, то есть строк вида [u]...[/u], [b]...[/b] и [s]...[/s]. Или при поиске атрибутов, которые могут быть в одинарных кавычках или двойных.

Обращение к предыдущей части паттерна в javascript осуществляется как \1, \2 и т.п., бэкслеш + номер скобочной группы:

text = ' [b]a [u]b[/u] c [/b] '

var reg = /\[([bus])\](.*?)\[\//*u*/\1/*/u*/\]/
text = text.replace(reg, '<$1>$2</$1>')
alert(text)

Обращение к скобочной группе в строке замены идет уже через доллар: $1. Не знаю, почему, наверное так удобнее..

P.S. Понятно, что при таком способе поиска bb-тагов придется пропустить текст через замену несколько раз - пока результат не перестанет отличаться от оригинала.

Эти две задачи решаются в javascript принципиально по-разному.

Начнем с "простого".

Для замены всех вхождений используется метод String#replace.
Он интересен тем, что допускает первый аргумент - регэксп или строку.

Если первый аргумент - строка, то будет осуществлен поиск подстроки, без преобразования в регулярное выражение.

Попробуйте:

alert("2 ++ 1".replace("+", "*"))

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

Чтобы заменить все вхождения, String#replace придется использовать в режиме регулярного выражения.

В режиме регулярного выражения плюс придется заэкранировать, но зато replace заменит все вхождения (при указании флага g):

alert("2 ++ 1".replace(/\+/g, "*"))

Вот такая особенность работы со строкой.

Очень полезной особенностью replace является возможность работать с функцией вместо строки замены. Такая функция получает первым аргументом - все совпадение, а последующими аргументами - скобочные группы.

Следующий пример произведет операции вычитания:

var str = "count 36 - 26, 18 - 9"
str = str.replace(/(\d+) - (\d+)/g, function(a,b,c) { return b-c })
alert(str)

В javascript нет одного универсального метода для поиска всех совпадений.
Для поиска без запоминания скобочных групп - можно использовать String#match:

var str = "count 36-26, 18-9"
var re =  /(\d+)-(\d+)/g
result = str.match(re)
for(var i=0; i<result.length; i++) alert(result[i])

Как видите, оно исправно ищет все совпадения (флаг 'g' у регулярного выражения обязателен), но при этом не запоминает скобочные группы. Эдакий "облегченный вариант".

В сколько-нибудь сложных задачах важны не только совпадения, но и скобочные группы. Чтобы их найти, предлагается использовать многократный вызов RegExp#exec.

Для этого регулярное выражение должно использовать флаг 'g'. Тогда результат поиска, запомненный в свойстве lastIndex объекта RegExp используется как точка отсчета для следующего поиска:

var str = "count 36-26, 18-9"
var re =  /(\d+)-(\d+)/g
var res
while ( (res = re.exec(str)) != null) {
  alert("Найдено " + res[0] + ":  ("+ res[1]+") и ("+res[2]+")")
  alert("Дальше ищу с позиции "+re.lastIndex)
}

Проверка while( (res = re.exec(str)) != null) нужна т.к. значение res = 0 является хорошим и означает, что вхождение найдено в самом начале строки (поиск успешен). Поэтому необходимо сравнивать именно с null.

Ну и напоследок - еще одна совсем оригинальная особенность регулярных выражений.

Вот - одна интересная функция.

Запустите ее один раз, запомните результат - и запустите еще раз.

function rere() {
    var re1 = /0/, re2 = new RegExp('0')
    alert([re1.foo, re2.foo])
    re1.foo = 1
    re2.foo = 1
}
rere()

В зависимости от браузера, результат первого запуска может отличаться от второго. На текущий момент, это так для Firefox, Opera. При этом в Internet Explorer все нормально.

С виду функция создает две локальные переменные и не зависит от каких-то внешних факторов.

Почему же разный результат?

Ответ кроется в стандарте ECMAScript, пункт 7.8.5:

Цитата...

A regular expression literal is an input element that is converted to a RegExp object (section 15.10)
when it is scanned. The object is created before evaluation of the containing program or function begins.
Evaluation of the literal produces a reference to that object; it does not create a new object.

То есть, простыми словами, литеральный регэксп не создается каждый раз при вызове var r = /regexp/.
Вместо этого браузер возвращает уже существующий объект, со всеми свойствами, оставшимися от предыдущего запуска.

В отличие от этого, new RegExp всегда создает новый объект, поэтому и ведет себя в примере по-другому.

Есть еще особенности?

Напишите в комментарии, и я добавлю их в статью.


Автор: Octane, дата: 18 января, 2010 - 19:17
#permalink

Наверное, стоит упомянуть о lastIndex, из-за которого иногда получаются вот такие, не совсем очевидные, ситуации:

var toLowerCamelCase = function () {
	var expr = /-([a-z])/g;
	return function(prop) {
		return expr.test(prop) ? prop.replace(expr, function () {
			return arguments[1].toUpperCase();
		}) : prop;
	};
}();

alert([
    toLowerCamelCase('background-image'),
    toLowerCamelCase('background-image'),
    toLowerCamelCase('background-image'),
    toLowerCamelCase('background-image')
].join("\n"));

Эффект можно наблюдать в IE и Chrome 4

backgroundImage
background-image
backgroundImage
background-image

Автор: with-love-from-..., дата: 24 февраля, 2011 - 14:20
#permalink

Приведенный Вами в примере

expr.test(prop)

аналогичен

expr.exec(prop) != null

со всеми вытекающими последствиями - будут обновляться свойства регэкспа (.lastIndex в том числе).

Вы используете замыкание и объявляете регэксп в локальной области видимости. Вы же для чего-то "спрятали" переменную
-- для многократного использования одного выражения
-- или чтобы не засорять общее пространство имен
-- или все вместе?

МСИЕ как раз ведет себя логично - многократное использование переменной в замыкании. А вот ФФ таки не логичен - с какой стати он реинициализирует переменную при каждом вызове функции?


Автор: Андрей Сидоров (не зарегистрирован), дата: 18 января, 2010 - 14:24
#permalink

регекспы яваскрипта позаимствовали синтаксис из перла, но реализовали только часть функционала. на сколько я знаю, своего они ничего не придумывали, и в таком случае скорее стоит говорить не об особенностях js-регекспов, а об их отличии от перловых.

а именно:

поддерживаются только три модификатора i,g,m
не поддерживаются модификаторы внутри регекспа (?i) (?-i)
не поддерживаются \A и \Z (начало и конец строки)
нет possessive quantifiers ?+ *+ ++
нет атомарной группировки (?>...)
нет lookbehind assertions (?<=...) (?...)
нет conditionals (?(condition)yes-pattern|no-pattern)
нет комментариев (?#comment)
нет рекурсивной конструкции (?R)

p.s. если не читали, рекомендую почитать книгу Фридла по регекспам - очень способствует пониманию регекспов.
http://www.amazon.com/Mastering-Regular-Expressions-Jeffrey-Friedl/dp/05...


Автор: Илья Кантор, дата: 18 января, 2010 - 18:35
#permalink

В этой статье описаны не отсутствующие фичи, по сравнению с перлом, а особенности.

То есть фичи и способы решения задач, которые ЕСТЬ, но работают ИНАЧЕ, чем мы привыкли видеть.


Автор: Rosya (не зарегистрирован), дата: 18 января, 2010 - 15:50
#permalink

Спасибо за рекомендации по поводу комментариев... Но дополнений и исправлений нет, есть только слова благодарности за такую информацию...


Автор: Regent, дата: 19 января, 2010 - 13:35
#permalink

.*? - действительно пробивная штука


Автор: anikey99, дата: 19 января, 2010 - 19:33
#permalink

вопрос почти в тему:
так как выражение replace в js работает только 1 раз -
как посчитать на странице количество bb тегов, в частности, ([url=ссылка]описание[/url] ), и если можно, как заменить такое выражение на желаемый мной текст?


Автор: B@rmaley.e><e, дата: 28 января, 2010 - 08:11
#permalink
var count = 0;
string.replace(/\[url=([^\]]+)\](.+?)\[\/url\]/ig, function($$, $1, $2){
  count++;
  return '<a href="' + $1 +'">' + $2 + '</a>';
});

Автор: Сашок (не зарегистрирован), дата: 25 января, 2010 - 13:03
#permalink

Да сложное дело java, а вы платную помощь не оказываете?


Автор: Илья Кантор, дата: 25 января, 2010 - 13:39
#permalink

Бесплатную оказываем. В форум.

P.S. При конкретной формулировке вопроса и адекватности спрашивающего.


Автор: anikey99, дата: 27 января, 2010 - 07:57
#permalink

помощь оказываем всякую, если надо что то конкретное написать обращайся


Автор: anikey99, дата: 27 января, 2010 - 07:57
#permalink

При конкретной формулировке вопроса и адекватности спрашивающего.

А что мой вопрос от 19 января, 2010 - 19:33 был не адекватен?


Автор: Илья Кантор, дата: 27 января, 2010 - 11:47
#permalink

Прочитайте статью еще раз, там появился раздел о поиске и замене. Надеюсь, он поможет в решении вашей задачи.


Автор: Гость (не зарегистрирован), дата: 19 февраля, 2010 - 21:09
#permalink

Подскажите, пожалуйста.
Делаю плагин autocomplete к jQuery. Не получается сделать проверку на вхождение и замену в строках с символами кириллицы.
Делаю так:

var re = new RegExp('\\b'+text,'gi');
if(re.search(str))
 str.replace(re,'<strong>$1</strong>');

где str — текст текущего элемент списка (в цикле обхожу все элементы),
text — это текст, содержащийся в поле ввода, т.е. подстрока.
С латиницей получается, с кириллицей — нет.


Автор: Гость (не зарегистрирован), дата: 19 февраля, 2010 - 21:14
#permalink

Ой, простите, перепутал немного.

if(str.search(re))

Автор: Гость (не зарегистрирован), дата: 20 февраля, 2010 - 08:22
#permalink

Нашёл примерчик регулярного выражения из готового плагина. Сработало! Объясните его, пожалуйста.

var re = new RegExp("(?![^&;]+;)(?!<[^<>]*)("+text+")(?![^<>]*>)(?![^&;]+;)",'gi');

Интересует само содержимое выражения.


Автор: viy.li, дата: 4 июня, 2012 - 22:21
#permalink

дайте ссылку на данный плагин пожалуйста


Автор: Гость (не зарегистрирован), дата: 5 октября, 2015 - 15:49
#permalink

\b ищет границу слов написанных только латиницей.


Автор: DmitryRegEx (не зарегистрирован), дата: 2 марта, 2010 - 20:29
#permalink

Подскажите как лучше решить задачу, если есть большой текст и надо произвести замену только одного вхождения подстроки, но при этом не первого (как будет без указания global), а последнего.
То есть, например есть строка "1xy2xy3xy4xy" и надо убрать последнее вхождение "xy", то есть получить "1xy2xy3xy4"
Подскажите, как это реализовать средствами javascript ?


Автор: Яростный Меч, дата: 12 апреля, 2010 - 14:00
#permalink

Воспользуемся жадностью
var result = '1xy2xy3xy4xy'.replace(/([\s\S]*)xy/m, function(a,b){return b;})


Автор: Гость (не зарегистрирован), дата: 19 июня, 2010 - 18:25
#permalink

можно вот эти слова перевести в java выражения?
привет
пока
как дела
пошол ты
здарова
что делаеш

Буду очень блогодарен


Автор: Гость (не зарегистрирован), дата: 20 июня, 2010 - 09:00
#permalink

Для удаления тега, например span можно написать так:
x=x.replace(/<(\/?)span([^>]*)>/ig,'')
от тега останется только то, что в нём, например от:
Содержимое
останется только "Содержимое"
А как убрать всё целиком и тег и его содержимое?


Автор: Slawaq, дата: 26 августа, 2010 - 01:42
#permalink

то что искал 3 дня по бб кодам, только не давно начал работать с регами из-за это-го плохо понимал, статья супер, примеры идеальны


Автор: Гость (не зарегистрирован), дата: 19 ноября, 2010 - 15:27
#permalink

вы юзаете /i, /gi и т.п., но ничего о них не пишете
вы не находите что неплохо бы добавить их описание ?
или для них здесь есть отдельная страничка ? - тогда киньте ссылку


Автор: B@rmaley.e><e, дата: 20 ноября, 2010 - 08:52
#permalink

Автор: Гость (не зарегистрирован), дата: 18 января, 2011 - 23:41
#permalink

Найти все со скобками

Там у вас пример странный, вот например в Вашем же случае все скобочки найти можно просто: "count 36-26, 18-9".match( /(\d+)-(\d+)/g ) и вернется массив из найденых вхождений, в данном случае 2 элемента, почему Вы привели именно такой пример?


Автор: Гость (не зарегистрирован), дата: 4 ноября, 2011 - 00:40
#permalink

"...Чтобы их найти, предлагается использовать многократный вызов RegExp#exec."

Мне кажется тут говорится, что поиск всех "скобок" должен происходить в цикле, т.к. ".match" вернет только первое вхождение.


Автор: Гость (не зарегистрирован), дата: 21 января, 2011 - 09:03
#permalink

Объясните пожалуйста, как в маску передать переменную - строку.
Заранее спасибо за ответ.


Автор: Гость (не зарегистрирован), дата: 15 февраля, 2011 - 11:49
#permalink

var reg=new RegExp(varstring);


Автор: max7 (не зарегистрирован), дата: 31 января, 2011 - 20:12
#permalink

А как вам это (почти как String.prototype.replace)

RegExp.prototype.reset = function() 
 { 
    this.lastIndex = 0;
    return this;
 };   

 RegExp.prototype.forEach = function(str, fun, scope) 
 { 
    this.reset();
    for(var res = null; (res = this.exec(str)) != null;)
       if(fun.apply(scope, res) === false)
          break;
    return this;
 };

Автор: edd_k, дата: 19 марта, 2011 - 16:49
#permalink

>> Это не совсем особенность, скорее фича, но все же достойная отдельного абзаца.

Нежадный "?" - это не фича js-а. Эту возможность давно поддерживают и php, и perl наверное, и микрософтовская реализация регулярок.


Автор: Гость (не зарегистрирован), дата: 14 апреля, 2011 - 18:07
#permalink

Как можно заполнить массив найдеными числами. Делаю

var re =  /\d+/g
	var res
	while ( (res = re.exec(str)) != null) {
	  ar[i] = res[i];
	  alert(res[i]);
	  i++;
	}

Не получается, заполняется только первый элемент?


Автор: ShpuntiK (не зарегистрирован), дата: 10 августа, 2011 - 17:49
#permalink
var str = "sdfsd23321 3asdfds 23-023 sdaf12d2d201m21"; //например такая строка
var arr = [];
arr = str.match(/\d+/g); // возьмём match и он сразу сам в массив всё запишет
for (var i=0; i < arr.length; i++){  // и выводим для проверки
    alert(arr[i]);
};

Автор: Гость (не зарегистрирован), дата: 21 апреля, 2011 - 16:37
#permalink
var re =  /\d+/g
	var res
	var ar = new Array();
	while ( (res = re.exec(str)) != null) {
	  ar.push(res[i]);
	  alert(res[i]); //добавляемый элемент массива
	  i++;
	}
	alert(ar); //показать массив с найденными числами

Автор: Гость (не зарегистрирован), дата: 2 октября, 2011 - 07:08
#permalink

подправьте секцию "статические свойства" у меня кнопка "запустить" на однострочном коде выдаёт
rere() is not defined

firefox 6.0.2


Автор: Gozar, дата: 26 октября, 2011 - 20:21
#permalink

Тогда уж заодно и поправить, что результат одинаковый и в FF7 и Opera11.51.
Пофиксили поведение.


Автор: Гость (не зарегистрирован), дата: 3 ноября, 2011 - 14:25
#permalink

Доброго времени суток.
Задача: заменить все двойные кавычки " в строке на пробелы, если они не являются частью выражения ";". Пытался так
var pattern = /"(?!;")/g;
var new_str = str.replace(pattern," ");
но данный вариант,удаляя кавычки, от ";" оставляет ";
Буду благодарен за помощь.


Автор: Гость (не зарегистрирован), дата: 4 ноября, 2011 - 01:23
#permalink

Все верно, ваше выражение /"(?!;")/ находит кавычку, если за ней не следует точка с запятой. В выражении ";" под этот поиск как раз попадает вторая кавычка, ведь за ней нет точки с запятой.


Автор: vexdex (не зарегистрирован), дата: 7 ноября, 2011 - 01:08
#permalink

Привет.
Прошу помощи - поиск и замена накладываются при повторном применении....

param = "p2 and s3"
param.replace(/p/g,"models.price=").replace(/s/g,"models.season_ID=")

приводит к
modelmodels.season_ID=.price=2

и как быть, если надо
model.price=2 and models.season_ID=3
?


Автор: Caleb, дата: 17 апреля, 2012 - 13:42
#permalink

Можно предварительно заменить искомые подстроки на заведомо уникальные, а потом заменять уже эти уникальные на то, что надо. Например так:

param = "p2 and s3"
param
.replace(/p/g,"SOME_UNIQ_TEXT_1")
.replace(/s/g,"SOME_UNIQ_TEXT_2")
.replace(/SOME_UNIQ_TEXT_1/g,"models.price=")
.replace(/SOME_UNIQ_TEXT_2/g,"models.season_ID=")

В качестве замедомо уникальных строк (SOME_UNIQ_TEXT_1) можно использовать например COM GUID или MD5 хеш от текущего времени и еще чего-нибудь (стопроцентной гарантии уникальности конечно нет, но для данной задачи подойдет).


Автор: up2beer (не зарегистрирован), дата: 21 апреля, 2012 - 07:34
#permalink

думай что пишешь! md5 блин....
уникальность можно получить банальным счетчиком

var string = 'some strings', z=0;
string.replace(/s/g, function() {return z++;});

и чтоб не было пересекающихся замен - делать замены одним выражением:

var param = "p2 and s3";
param.replace(/([sp])/g, function(i, r) {
    if (r == 's') return 'models.season_ID=';
    if (r == 'p') return 'models.price='
});

Автор: Invis1ble, дата: 18 мая, 2012 - 04:30
#permalink

rere() is not defined
Chromium 18


Автор: oneguy, дата: 5 июня, 2012 - 22:51
#permalink

По поводу статических свойств регулярных выражений:
В 5-ом ECMAScript эту "фичу" уже убрали - теперь при каждом выполнении литерала регулярного выражения создаётся новый объект RegExp.


Автор: Гость (не зарегистрирован), дата: 30 июля, 2012 - 16:50
#permalink

Привет всем. Очень нужна помощь. Есть строка вида text.text.text - curr
в результате выполнения

/^([^\.]*)(\.?(.*)$|$)/.exec(curr);

получается

RegExp.$1
"text"
>>> RegExp.$2
".text.text"
>>> RegExp.$3
"text.text"

Беда в том, что в тексте может быть конструкция вида '/.' которая должна вопсприниматься как текст (text) и вести себя так же. Т.е. регулярка не должна срабатывать по точке если перед точкой есть '/'. Помогите пожалуйста. Вообще не могу придумать как это оформить


Автор: Гость (не зарегистрирован), дата: 28 января, 2013 - 10:55
#permalink

Доброго времени суток, уважаемые специалисты.
Впервые столкнулся с регэкспами... Пока обходился без него, но жизнь заставила).
Не могу сформировать шиблон для задачи:
Нужно проверить, подходит ли строка под шаблон ЧИСЛО.ЧИСЛО
На данный момент додумался вот до этого:

function CheckChain(Chain){
var validRegExp = /^(([0-9\-])+\.)+([0-9]{1,2})+$/;
var rslt = Chain.match(validRegExp);
return rslt;}

Работает, но есть 2 НО:
1) ошибка при выполнении, если Chain=Null (не оч. критично)
2) под шаблон попадаюn также значения типа ЧИСЛО.ЧИСЛО.ЧИСЛО.ЧИСЛО (1.2.17.56), что неправильно.
Подскажите, пожалуйста, где я не прав, и как должен выглядеть шаблон. Буду благодарен за пояснения.
Заранее благодарю всех откликнувшихся.


Автор: Гость (не зарегистрирован), дата: 4 июля, 2013 - 21:25
#permalink

"число.число.число" подходит, поскольку так разрешено:
сначала разрешается сочетание "число.число.": (([0-9\-])+\.)+ , т.е. один или несколько символов, являющихся числом или "-", за которыми обязательно стоит точка, и это сочетание повторяется один или несколько раз (т.е. 93.45.28234284. - это норм.),
а следом требуете еще число: ([0-9]{1,2})+, т.е. одна или две цифры, повторяющиеся один или несколько раз,
в итоге "число.число.число" вполне подходит, точно также, как что-нибудь вроде этого: --9273---38-328-----.-----.344598452378274339

если нужно, чтоб строка соответствовала шаблону "число.число" и ничего кроме этой последовательности не содержала, то: /^[0-9]+\.[0-9]+$/
если в качестве первого допускается любое, а в качестве второго только однозначное или двузначное число, тогда так: /^[0-9]+\.[0-9]{1,2}$/
если при этом нужно запомнить только цифры, то: /^([0-9]+)\.([0-9]{1,2})$/


Автор: Глеб Иваницкий (не зарегистрирован), дата: 27 мая, 2013 - 15:10
#permalink

А как сделать так, чтобы я нажал на текст и открылось такое окно, но с моим текстом?


Автор: demoniqus, дата: 17 августа, 2013 - 08:03
#permalink

Если я не ошибаюсь, то в разделе "Точка и перенос строки" допущена ошибка во второй регулярке.
/\[u\](.*?)\[\/u\]/gim - здесь установлен нежадный поиск
/\[u\]([\s\S]*)\[\/u\]/gim - а вот тут забыли этот нежадный поиск установить и в результате получится инфаркт для чайника))) Правильно будет /\[u\]([\s\S]*?)\[\/u\]/gim


Автор: Гость (не зарегистрирован), дата: 4 октября, 2013 - 16:45
#permalink

Здравствуйте.
Столкнулся с проблемой, не работает правильно регулярное выражение.

Есть строка page/:cat/:name/sort/:subcat/my/:id
Мне нужно из неё получить код между ":" и "/"
Пробую так:

var str = "page/:cat/:name/sort/:subcat/my/:id";
 var myA;
  if((myA = /:(\w+)+/gi.exec(str)) != null) {
                  console.log(myA);
  }

Но, этот код возвращает только первое совпадение "cat", а нужно что бы вернуло все: cat, name, subcat, id


Автор: Гость (не зарегистрирован), дата: 4 октября, 2013 - 17:27
#permalink

Решил проблему, нужно было циклом пройтись.
Вот возможно кому-то понадобится:

var str = "page/:cat/:name/sort/:subcat/my/:id";
var myA;
var re =  /:(\w+)/gi
while((myA = re.exec(key)) != null) {
    console.log(myA[1]);
}

Автор: Гость (не зарегистрирован), дата: 4 октября, 2013 - 17:30
#permalink

Точнее:

var str = "page/:cat/:name/sort/:subcat/my/:id";
var myA;
var re =  /:(\w+)/gi
while((myA = re.exec(str)) != null) {
    console.log(myA[1]);
}

Опечатался


Автор: Suvorov (не зарегистрирован), дата: 27 марта, 2014 - 16:59
#permalink

Уважаемая администрация, код не запускается.

function rere() {
var re1 = /0/, re2 = new RegExp('0')
alert([re1.foo, re2.foo])
re1.foo = 1
re2.foo = 1
}
rere()

К тому же, в FF он работает нормально.


Автор: Гость (не зарегистрирован), дата: 27 августа, 2014 - 13:25
#permalink

"выражение матчит ее от начала и до конца" - а без жаргонизмов-кАлек можно писать, более литературно.


Автор: Василий Степанович (не зарегистрирован), дата: 26 марта, 2015 - 20:42
#permalink

> str = str.replace(/(\d+) - (\d+)/g, function(a,b,c) { return b-c })

А почему здесь в регулярном выражении - 2 аргумента - (\d+) и (\d+),
а в функции 3 аргумента - a, b, c?


Автор: Гость (не зарегистрирован), дата: 26 марта, 2015 - 20:44
#permalink

Прошу прощения. Ответ нашёл в описании:
> Первый параметр всегда содержит полную совпавшую подстроку


Автор: Гость (не зарегистрирован), дата: 4 октября, 2018 - 12:44
#permalink

Материал полезный, еще можно почитать статьи по связанным темам.


Автор: osama skh (не зарегистрирован), дата: 1 февраля, 2020 - 14:32
#permalink

If you set out to make me think today; mission accomplished! I really like your writing style and how you express your ideas. Thank you.


Автор: john johnss (не зарегистрирован), дата: 6 февраля, 2020 - 20:00
#permalink

You know your projects stand out of the herd. There is something special about them. It seems to me all of them are really brilliant!
The Fancy Voyager


Автор: Naomi (не зарегистрирован), дата: 15 февраля, 2020 - 10:00
#permalink

Продолжайте в том же духе ваш блог очень красивый и полезный.
John


Автор: johnb6 (не зарегистрирован), дата: 23 февраля, 2020 - 14:43
#permalink

I can see that you are an expert at your field! I am launching a website soon, and your information will be very useful for me.. Thanks for all your help and wishing you all the success in your business.
Wasps Nest Removal


Автор: johnb (не зарегистрирован), дата: 28 февраля, 2020 - 22:10
#permalink

Awesome blog. I enjoyed reading your articles. This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work!
movie leather jackets


Автор: johnb (не зарегистрирован), дата: 29 февраля, 2020 - 22:49
#permalink

This is such a great resource that you are providing and you give it away for free. I love seeing blog that understand the value of providing a quality resource for free.
Kad3D


Автор: johnaab (не зарегистрирован), дата: 3 марта, 2020 - 00:08
#permalink

I haven’t any word to appreciate this post.....Really i am impressed from this post....the person who create this post it was a great human..thanks for shared this with us.
window glass


Автор: osama shk (не зарегистрирован), дата: 7 марта, 2020 - 10:59
#permalink

Awesome blog. I enjoyed reading your articles. This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work!
婚約指輪 福岡


Автор: john bond (не зарегистрирован), дата: 12 марта, 2020 - 13:15
#permalink

Awesome blog. I enjoyed reading your articles. This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work!
p405 training


Автор: john bond (не зарегистрирован), дата: 14 марта, 2020 - 10:48
#permalink

This is highly information, crisp and clear. I think that everything has been described in systematic manner so that reader could get maximum information and learn many things.
https://beone.vn/bot-ngu-coc-la-gi/


Автор: johnb (не зарегистрирован), дата: 14 марта, 2020 - 13:17
#permalink

I was reading your article and wondered if you had considered creating an ebook on this subject. Your writing would sell it fast. You have a lot of writing talent.
Top Wireless Thermometer Hygrometers


Автор: osama shk (не зарегистрирован), дата: 16 марта, 2020 - 13:40
#permalink

You have done a great job on this article. It’s very readable and highly intelligent. You have even managed to make it understandable and easy to read. You have some real writing talent. Thank you.
anti rayap jakarta


Автор: osama shk (не зарегистрирован), дата: 19 марта, 2020 - 12:43
#permalink

i am for the first time here. I found this board and I in finding It truly helpful & it helped me out a lot. I hope to present something back and help others such as you helped me.
婚約指輪 猫


Автор: john bond (не зарегистрирован), дата: 21 марта, 2020 - 14:06
#permalink

This is my first time visit here. From the tons of comments on your articles,I guess I am not only one having all the enjoyment right here!
Best Solar Installers Oakland


Автор: john bond (не зарегистрирован), дата: 21 марта, 2020 - 18:12
#permalink

Wow, cool post. I’d like to write like this too – taking time and real hard work to make a great article… but I put things off too much and never seem to get started. Thanks though.
paving contractors


Автор: osama shk (не зарегистрирован), дата: 22 марта, 2020 - 19:35
#permalink

You completed a few fine points there. I did a search on the subject and found nearly all persons will go along with with your blog.
ハワイアンジュエリー 結婚指輪


Автор: muneer ahmed (не зарегистрирован), дата: 23 марта, 2020 - 12:20
#permalink

This is a wonderful article, Given so much info in it, These type of articles keeps the users interest in the website, and keep on sharing more ... good luck. https://royalcbd.com/product/cbd-oil-2500mg/


Автор: john bond (не зарегистрирован), дата: 23 марта, 2020 - 13:55
#permalink

I really like your take on the issue. I now have a clear idea on what this matter is all about..
páciensek és fogorvosok kedvence


Автор: john bond (не зарегистрирован), дата: 23 марта, 2020 - 20:29
#permalink

I just couldn't leave your website before telling you that I truly enjoyed the top quality info you present to your visitors? Will be back again frequently to check up on new posts.
PHD barbers


Автор: osama shk (не зарегистрирован), дата: 23 марта, 2020 - 21:35
#permalink

If you set out to make me think today; mission accomplished! I really like your writing style and how you express your ideas. Thank you.
婚約指輪 福岡


Автор: Гость (не зарегистрирован), дата: 26 марта, 2020 - 12:40
#permalink

Your work is very good and I appreciate you and hopping for some more informative posts. Thank you for sharing great information to us.
flowchart maker


Автор: johnsa (не зарегистрирован), дата: 26 марта, 2020 - 12:55
#permalink

Thanks so much for this information. I have to let you know I concur on several of the points you make here and others may require some further review, but I can see your viewpoint.
Best Air Fryers


Автор: john bond (не зарегистрирован), дата: 27 марта, 2020 - 15:09
#permalink

Interesting post. I Have Been wondering about this issue, so thanks for posting. Pretty cool post.It 's really very nice and Useful post.Thanks
medicine for your lungs


Автор: john bond (не зарегистрирован), дата: 29 марта, 2020 - 11:02
#permalink

I am very enjoyed for this blog. Its an informative topic. It help me very much to solve some problems. Its opportunity are so fantastic and working style so speedy.
website design quotes


Автор: muneer ahmed (не зарегистрирован), дата: 29 марта, 2020 - 20:17
#permalink

This is my first time visit to your blog and I am very interested in the articles that you serve. Provide enough knowledge for me. Thank you for sharing useful and don't forget, keep sharing useful info: https://royalcbd.com/product/cbd-oil-1000mg/


Автор: muneer ahmed (не зарегистрирован), дата: 30 марта, 2020 - 20:43
#permalink

I am all that much satisfied with the substance you have specified. I needed to thank you for this extraordinary article. https://royalcbd.com/product/cbd-oil-500mg/


Автор: john bond (не зарегистрирован), дата: 31 марта, 2020 - 12:12
#permalink

I am very much pleased with the contents you have mentioned. I wanted to thank you for this great article.
sports bars near me


Автор: muneer ahmed (не зарегистрирован), дата: 2 апреля, 2020 - 18:42
#permalink

It was extremely all around composed and straightforward. Not at all like different online journals I have perused which are truly not that good.Thanks a lot https://royalcbd.com/product/cbd-oil-250mg/


Автор: muneer ahmed (не зарегистрирован), дата: 2 апреля, 2020 - 18:57
#permalink

Visit our site to find more about wedding photographer Northern Virginia. We offer engagement and proposal photography in Va. https://royalcbd.com/product/cbd-gummies-10mg/


Автор: muneer ahmed (не зарегистрирован), дата: 2 апреля, 2020 - 19:10
#permalink

Particular interviews furnish firsthand message on mart size, industry trends, ontogeny trends, capitalist landscape and outlook, etc. https://royalcbd.com/product/cbd-gummies-25mg/


Автор: muneer ahmed (не зарегистрирован), дата: 2 апреля, 2020 - 19:38
#permalink

I am extremely delighted in for this web journal. Its a useful subject. It help me all that much to take care of a few issues. Its chance are so awesome and working style so rapid. https://royalcbd.com/product/cbd-capsules-25mg/


Автор: muneer ahmed (не зарегистрирован), дата: 2 апреля, 2020 - 19:45
#permalink

I am all that much satisfied with the substance you have specified. I needed to thank you for this extraordinary article. https://royalcbd.com/product/cbd-roll-on-gel/


Автор: muneer ahmed (не зарегистрирован), дата: 2 апреля, 2020 - 19:57
#permalink

This is my first time visit to your blog and I am very interested in the articles that you serve. Provide enough knowledge for me. Thank you for sharing useful and don't forget, keep sharing useful info: https://royalcbd.com/product/cbd-salve/


Автор: muneer ahmed (не зарегистрирован), дата: 2 апреля, 2020 - 20:07
#permalink

Most of the time I don’t make comments on websites, but I'd like to say that this article really forced me to do so. Really nice post! https://royalcbd.com/shop/


Автор: muneer ahmed (не зарегистрирован), дата: 2 апреля, 2020 - 20:14
#permalink

Intriguing post. I Have Been pondering about this issue, so much obliged for posting. Really cool post.It "s truly extremely pleasant and Useful post.Thanks https://royalcbd.com/


Автор: muneer ahmed (не зарегистрирован), дата: 2 апреля, 2020 - 20:26
#permalink

Waow this is quite pleasant article, my sister love to read such type of post, I am going to tell her and bookmarking this webpage. Thanks https://royalcbd.com/blog/


Автор: peved (не зарегистрирован), дата: 3 апреля, 2020 - 11:47
#permalink

I really enjoyed reading this post, big fan. Keep up the good work and please tell me when can you publish more articles or where can I read more on the subject?
Barbados Website Design


Автор: pevedob (не зарегистрирован), дата: 4 апреля, 2020 - 18:51
#permalink

I really impressed after read this because of some quality work and informative thoughts . I just wanna say thanks for the writer and wish you all the best for coming!.
Vegan French Toast Recipes


Автор: rr.com webmail (не зарегистрирован), дата: 6 апреля, 2020 - 12:43
#permalink

I appreciate everything you have added to my knowledge base.Admiring the time and effort you put into your blog and detailed information you offer.Thanks. rr.com webmail


Автор: peved (не зарегистрирован), дата: 7 апреля, 2020 - 13:32
#permalink

Thanks for the nice blog. It was very useful for me. I'm happy I found this blog. Thank you for sharing with us,I too always learn something new from your post.
Wordpress freelancers needed


Автор: Most Relaxing Waves Ever (не зарегистрирован), дата: 9 апреля, 2020 - 16:09
#permalink

I can give you the address Here you will learn how to do it correctly. Read and write something good. Most Relaxing Waves Ever


Автор: john bond (не зарегистрирован), дата: 9 апреля, 2020 - 17:46
#permalink

I know your expertise on this. I must say we should have an online discussion on this. Writing only comments will close the discussion straight away! And will restrict the benefits from this information.
Painters Lawrenceville GA


Автор: osama shk (не зарегистрирован), дата: 12 апреля, 2020 - 22:46
#permalink

i am always looking for some free stuffs over the internet. there are also some companies which gives free samples.
unique dog boxes


Автор: ppe (не зарегистрирован), дата: 13 апреля, 2020 - 09:45
#permalink

Thanks for a wonderful share. Your article has proved your hard work and experience you have got in this field. Brilliant .i love it reading. ppe


Автор: muneer ahmed (не зарегистрирован), дата: 13 апреля, 2020 - 22:54
#permalink

This is my first time visit to your blog and I am very interested in the articles that you serve. Provide enough knowledge for me. Thank you for sharing useful and don't forget, keep sharing useful info: iptv


Автор: muneer ahmed (не зарегистрирован), дата: 14 апреля, 2020 - 17:52
#permalink

I truly value this superb post that you have accommodated us. I guarantee this would be helpful for a large portion of the general population. reformas integrales zaragoza


Автор: muneer ahmed (не зарегистрирован), дата: 16 апреля, 2020 - 17:39
#permalink

Great job for publishing such a beneficial web site. Your web log isn’t only useful but it is additionally really creative too. There tend to be not many people who can certainly write not so simple posts that artistically. Continue the nice writing https://agariogames.net/2017/05/29/how-to-capture-cell-phone-conversations-with-mobile-phone-spy/


Автор: Mike Koba (не зарегистрирован), дата: 18 апреля, 2020 - 18:41
#permalink

Really helpful article! There is a great deal of info below that can help any kind of organisation get going with a successful social networking project. kbc lottery winner 2020


Автор: Jason Miler (не зарегистрирован), дата: 19 апреля, 2020 - 15:16
#permalink

I actually enjoyed reading this article, a large fan. Maintain the great as well as please tell me when can you release extra write-ups or where can I check out extra on the subject? jio kbc head office number mumbai


Автор: Mike Koba (не зарегистрирован), дата: 19 апреля, 2020 - 15:17
#permalink

Due to the fact that of the deal, this is a magnificent message I have actually seen. It is truly what I expected to see rely on the future you will continue in sharing such a mind-blowing article. jio kbc head office number mumbai


Автор: Jame Addams (не зарегистрирован), дата: 20 апреля, 2020 - 23:14
#permalink

Great message however I was asking yourself if you could write a little bit much more on this subject? If you could clarify a little bit more, I 'd be really happy.
Appreciate it! kbc jio lottery winner list


Автор: Sleep Meditation (не зарегистрирован), дата: 21 апреля, 2020 - 11:20
#permalink

This specific seems to be definitely excellent. These very small facts are produced using wide range of qualifications know-how. I favor the idea a good deal Sleep Meditation


Автор: ffp3 respirators (не зарегистрирован), дата: 28 апреля, 2020 - 11:40
#permalink

Thanks for a wonderful share. Your article has proved your hard work and experience you have got in this field. Brilliant .i love it reading. ffp3 respirators


Автор: Гость (не зарегистрирован), дата: 1 мая, 2020 - 05:00
#permalink

Incredible article.
I like to examine this message considering I fulfilled such a lot of new genuine parts concerning it actually. kbc winner list


Автор: Ric Thomas (не зарегистрирован), дата: 2 мая, 2020 - 06:05
#permalink

Outstanding message.
Many thanks to this blog my exploration has actually ended. kbc head office number


Автор: Binaural Beats Sleep (не зарегистрирован), дата: 5 мая, 2020 - 10:09
#permalink

Turbo Steam is a powerful, yet portable, fabric and clothes steamer for all of your steaming needs. Binaural Beats Sleep


Автор: Ric Thomas (не зарегистрирован), дата: 6 мая, 2020 - 19:54
#permalink

I actually delighted in analysis this blog post, big follower. Maintain the excellent job as well as please inform me when can you release more articles or where can I find out more on the topic? kbc lottery winner 2020


Автор: Ric Thomas (не зарегистрирован), дата: 6 мая, 2020 - 21:00
#permalink

I desire you to thank for your time of this wonderful read!!!
I certainly delight in every little bit of it and I have you bookmarked to inspect out new stuff of
your blog a must-read blog! kbc lottery winner


Автор: Ric Thomas (не зарегистрирован), дата: 6 мая, 2020 - 21:07
#permalink

Very wonderful blog site and also write-ups.
I am truly extremely delighted to visit your blog site. Now I am discovered which I actually desire.
I check your blog site each day as well as try to discover something from your blog site.
Thanks as well as waiting on your new blog post. kbc lottery winner


Автор: Ric Thomas (не зарегистрирован), дата: 6 мая, 2020 - 21:21
#permalink

Great Article it's innovative and truly helpful keep us published with new updates.
its was actually valuable. many thanks a great deal. kbc winner list


Автор: Sophie Miller (не зарегистрирован), дата: 7 мая, 2020 - 11:17
#permalink

Je vous remercie de l'information! Je cherchais et ne pouvait pas trouver. Vous me aidé! 192.168.l.l


Автор: Andrew Strauch (не зарегистрирован), дата: 16 мая, 2020 - 21:39
#permalink

I actually took pleasure in reading this blog post, big fan. Maintain the good work as well as please inform me when can you publish extra short articles or where can I learn more on the topic? kbc winner list


Автор: Andrew Strauch (не зарегистрирован), дата: 17 мая, 2020 - 00:23
#permalink

Fabulous article, you have actually represented out some fantastic points, I also think this s an extremely remarkable website. I will certainly check out once more for even more quality content as well as additionally, advise this website to all. Many thanks. kbc lottery


Автор: Andrew Strauch (не зарегистрирован), дата: 17 мая, 2020 - 00:29
#permalink

Positive website, where did u think of the details on this uploading?
I have checked out a few of the short articles on your website now,
and I truly like your design. Thanks a million and please maintain the efficient work. kbc head office number


Автор: goxaf (не зарегистрирован), дата: 17 мая, 2020 - 04:26
#permalink

I really appreciate this wonderful post that you have provided for us. I assure this would be beneficial for most of the people.


Автор: maroc (не зарегистрирован), дата: 17 мая, 2020 - 04:35
#permalink

I have read your blog it is very helpful for me. I want to say thanks to you. I have bookmark your site for future updates.
moroccan lamps


Автор: Musica Para Estudiar Concentrarse Atención (не зарегистрирован), дата: 20 мая, 2020 - 19:10
#permalink

Turbo Steam is a powerful, yet portable, fabric and clothes steamer for all of your steaming needs. Musica Para Estudiar Concentrarse Atención


Автор: Andrew Strauch (не зарегистрирован), дата: 21 мая, 2020 - 10:09
#permalink

Since of the offer it, this is a remarkable post I have seen. It is actually what I expected to see depend on in the future you will certainly continue in sharing such a wonderful blog post. roku.com/link


Автор: detectives seville (не зарегистрирован), дата: 21 мая, 2020 - 18:35
#permalink

This post is good enough to make somebody understand this amazing thing, and I’m sure everyone will appreciate this interesting things. detectives seville


Автор: Гость (не зарегистрирован), дата: 22 мая, 2020 - 21:35
#permalink

The most effective article I discovered a number of years,
compose something about it on this web page. kbc winner list


Автор: Andrew Strauch (не зарегистрирован), дата: 22 мая, 2020 - 23:37
#permalink

Very wonderful blog site and short articles. I am actually very satisfied to visit your blog site.
Currently I am discovered which I in fact desire. I examine your blog everyday and attempt to learn something from your blog site.
Thanks and also waiting for your brand-new message. kbc lottery winner


Автор: Andrew Strauch (не зарегистрирован), дата: 23 мая, 2020 - 02:33
#permalink

I value this post for the well-researched web content as well as superb phrasing.
I obtained so curious about this material that I couldn't stop reviewing.
Your blog site is truly outstanding. kbc contact number


Автор: AndrewStrauch (не зарегистрирован), дата: 23 мая, 2020 - 03:02
#permalink

First You obtained an excellent blog.
I will certainly want more similar subjects.
I see you obtained really extremely valuable subjects,
I will certainly be always examining your blog thanks. kbc lottery winner


Автор: Andrew Strauch (не зарегистрирован), дата: 28 мая, 2020 - 03:06
#permalink

I really delighted in analysis this post, large fan.
Maintain up the great work and please inform me when can you release extra articles or where can
I learn more on the topic? jio lottery winner 2020


Автор: Andrew Strauch (не зарегистрирован), дата: 28 мая, 2020 - 03:11
#permalink

Regular brows through detailed here are the most convenient technique to value your power,
which is why I am going to the site everyday, browsing for brand-new,
intriguing info. Thanks! kbc lottery 2020


Автор: Maria James (не зарегистрирован), дата: 28 мая, 2020 - 04:51
#permalink

Excellent post. Please keep up the great work. You may check our website also Visit:


Автор: Búsqueda y localización de personas (не зарегистрирован), дата: 28 мая, 2020 - 21:06
#permalink

I think that thanks for the valuabe information and insights you have so provided here. Búsqueda y localización de personas


Автор: Andrew Strauch (не зарегистрирован), дата: 4 июня, 2020 - 07:13
#permalink

Think it or not, it is the kind of information I've long been searching for. It matches my needs a great deal. Thanks for composing this details. kbc head office number


Автор: Гость (не зарегистрирован), дата: 4 июня, 2020 - 20:49
#permalink

Believe it or not, it is the type of information I've long been looking for. It matches my needs a whole lot. Thank you for writing this information. kbc winner


Автор: Andrew Strauch (не зарегистрирован), дата: 4 июня, 2020 - 21:44
#permalink

Favorable site, where did u create the details on this publishing? I have actually checked out a few of the posts on your internet site now, and also I actually like your style. Thanks a million and please maintain the effective job. kbc helpline number


Автор: Гость (не зарегистрирован), дата: 4 июня, 2020 - 22:56
#permalink

I actually delighted in analysis this article, large fan. Maintain the great and please tell me when can you publish extra posts or where can I learn more on the topic? kbc customer care number


Автор: Andrew Strauch (не зарегистрирован), дата: 4 июня, 2020 - 23:25
#permalink

Think it or not, it is the kind of information I've long been searching for. It matches my needs a whole lot. Thank you for composing this information. kbc winner list


Автор: Гость (не зарегистрирован), дата: 5 июня, 2020 - 00:17
#permalink

Excellent blog post yet I was questioning if you could create a little bit much more on this topic? If you might clarify a little bit more, I 'd be really happy. Value it! jio lottery winner 2021


Автор: Floyd Ashley (не зарегистрирован), дата: 5 июня, 2020 - 00:25
#permalink

Fantastic job right here on. I check out a great deal of blog articles, however I never ever heard a subject such as this. I Love this subject you made about the blogger's container listing. Really clever. kbc lottery 2021


Автор: maro3 (не зарегистрирован), дата: 5 июня, 2020 - 09:20
#permalink

Most of the time I don’t make comments on websites, but I'd like to say that this article really forced me to do so. Really nice post!
roofing contractor south amboy nj


Автор: fave fave (не зарегистрирован), дата: 6 июня, 2020 - 16:26
#permalink

I can see that you are an expert at your field! I am launching a website soon, and your information will be very useful for me.. Thanks for all your help and wishing you all the success in your business.
closterroofing.com


Автор: simpson joshua (не зарегистрирован), дата: 10 июня, 2020 - 10:21
#permalink

A positive information is clearly seen in your article. I really hope this useful information can reach more consumers.
bubble shooter


Автор: Гость (не зарегистрирован), дата: 11 июня, 2020 - 06:29
#permalink

Fabulous blog post, you have signified out some amazing factors, I furthermore think this s a really fantastic web site. I will check out again for even more high quality material as well as likewise, recommend this website to all. Thanks. kbc lottery winner 2021


Автор: Гость (не зарегистрирован), дата: 11 июня, 2020 - 07:49
#permalink

Superior blog post, stay up to date with this exceptional job. It's nice to recognize that this subject is being additionally covered on this internet website so joys for making the effort to discuss this! Thanks once more and again! kbc winner list


Автор: Гость (не зарегистрирован), дата: 11 июня, 2020 - 12:51
#permalink

These particular documents fantastic, and My spouse and I enjoy each of the carry out that you have actually positioned into this. I'm certain that you will be making a really useful location. I have been additionally delighted. Good carry out! jio lottery


Автор: Andrew Strauch (не зарегистрирован), дата: 11 июня, 2020 - 14:10
#permalink

I desire you to say thanks to for your time of this wonderful read!!! I certainly delight in every bit of it and also I have you bookmarked to look into brand-new things of your blog site a must-read blog site! jio winner


Автор: Гость (не зарегистрирован), дата: 11 июня, 2020 - 14:59
#permalink

Many thanks for sharing good information with us. I like your article as well as all you show to us depends on day and rather useful, I would certainly like to bookmark the web page so I can come right here once more to review you, as you have done a terrific work. kbc lucky winner 2021


Автор: Гость (не зарегистрирован), дата: 11 июня, 2020 - 15:48
#permalink

It is genuinely a well-researched web content and excellent phrasing. I got so participated in this product that I couldn't wait to review. I am impressed with your work and also ability. Many thanks. kbc head office number


Автор: Гость (не зарегистрирован), дата: 11 июня, 2020 - 16:53
#permalink

Positive site, where did u come up with the information on this posting? I have actually read a few of the short articles on your website now, and also I really like your design. Thanks a million and also please keep up the effective work. kbc lottery winner


Автор: Гость (не зарегистрирован), дата: 15 июня, 2020 - 05:07
#permalink

Keep up the good work; I check out a few blog posts on this internet site, including I consider that your blog site is interesting and has sets of superb piece of information. Many thanks for your useful efforts. 먹튀검증


Автор: Гость (не зарегистрирован), дата: 19 июня, 2020 - 22:56
#permalink

Great Article it's really useful and cutting-edge maintain us uploaded with brand-new updates. its was truly important. many thanks a great deal.


Автор: hannah berry (не зарегистрирован), дата: 30 июня, 2020 - 09:22
#permalink

I see the article has a great deal of investment in content and science. I took the time to read them and found them quite interesting.
geometry dash


Автор: mtom55953 (не зарегистрирован), дата: 13 июля, 2020 - 11:31
#permalink

Much obliged to you for your post, I search for such article along time, today I discover it at long last. this post give me heaps of prompt it is extremely helpful for me. Custom Patches


Автор: zeesa (не зарегистрирован), дата: 16 июля, 2020 - 10:13
#permalink

You may remark on the request arrangement of the blog. You should visit it's unbelievable. Your blog review would swell up your guests. I was extremely satisfied to discover this site.I needed to thank you for this incredible read!! Custom Patches


Автор: freeform.com/activate on roku (не зарегистрирован), дата: 31 июля, 2020 - 18:00
#permalink

We always recommend you to choose the compatible device and then add the channel visiting the store. After collecting the code, enter the code navigating to the activation portal.


Автор: Гость (не зарегистрирован), дата: 7 августа, 2020 - 13:01
#permalink


Salutations! Je suis désolé, ce n'est pas le sujet! J'aime vraiment votre forum! Je vous remercie, je suis avec vous)


Автор: RankXone (не зарегистрирован), дата: 9 августа, 2020 - 19:32
#permalink

This post is extremely easy to peruse and acknowledge without forgetting any subtle elements. Extraordinary work! rencontre gratuite


Автор: RankXone (не зарегистрирован), дата: 15 августа, 2020 - 15:03
#permalink

Hiring a Bonded Security Firm Will Guarantee You Are Protected: If a security firm is bonded, this means that you are protected if a guard you hired steals from you. Usually, a reputable firm will be bonded, and will guarantee in a contract that they will take care of the losses if one of their workers is charged of theft. security guard company Portland Oregon


Автор: Roku.com/link (не зарегистрирован), дата: 23 августа, 2020 - 10:21
#permalink

Are you in search of the best Roku gadgets to buy and Roku.com/link Activation support


Автор: rokucom.link, дата: 23 августа, 2020 - 10:43
#permalink

Roku.com/link Open Web-Browser ( Google Chrome Recommended ) · Visit URL: Roku.com/link · Enter the code & ...


Автор: web design malaysia (не зарегистрирован), дата: 29 августа, 2020 - 15:14
#permalink

That's an interesting view, thanks for sharing.


Автор: Mtom55953 (не зарегистрирован), дата: 30 августа, 2020 - 07:13
#permalink

I am truly getting a charge out of perusing your elegantly composed articles. It would seem that you spend a considerable measure of exertion and time on your blog. I have bookmarked it and I am anticipating perusing new articles. Keep doing awesome. 안전놀이터


Автор: Mtom55953 (не зарегистрирован), дата: 3 сентября, 2020 - 09:38
#permalink

I for one utilize them solely astounding components : you will see these people amid: 토토사이트


Автор: merckseo (не зарегистрирован), дата: 18 сентября, 2020 - 18:07
#permalink

This is a fabulous post I seen by virtue of offer it. It is genuinely what I expected to see look for in future you will continue subsequent to sharing such an extraordinary post. 우리카지노


Автор: บาคาร่า (не зарегистрирован), дата: 8 октября, 2020 - 12:26
#permalink

Your website is so easy to use. I am impressed with it because even though I am not computer-literate, I managed to browse your site on my own. Good job! Visit this site:


Автор: บาคาร่าออนไลน์ (не зарегистрирован), дата: 8 октября, 2020 - 12:36
#permalink

Thanks for this site. This was really a big help for my research. I really appreciate your website. Thanks Again.


Автор: robert56 (не зарегистрирован), дата: 9 октября, 2020 - 04:58
#permalink

I thinh this is the right topic for content of forum.skribbl io


Автор: Гость (не зарегистрирован), дата: 23 октября, 2020 - 14:42
#permalink

Программирование это хорошо, но спортом тоже надо заниматься, например сесть на велотренажер.


Автор: Гость (не зарегистрирован), дата: 29 октября, 2020 - 15:11
#permalink

Автор: route (не зарегистрирован), дата: 29 октября, 2020 - 15:20
#permalink

Автор: Ainsley (не зарегистрирован), дата: 4 ноября, 2020 - 09:46
#permalink

I truly like your writing style, excellent details, thankyou for publishing. canon.com/ijsetup


Автор: Гость (не зарегистрирован), дата: 10 ноября, 2020 - 10:14
#permalink

토토사이트 I've never read this kind of story before. 먹튀검증What a great story! 안전놀이터I read it really interestingly. 토토사이트This article was a great help to me. 꽁머니I wish I could write something like this! 꽁머니Actually, I run a similar site. 안전놀이터I want you to come and take a look.스포츠중계 I would be really happy if you visit my site. Thank you! In addition, https://mtboan.com/COVID-19 is becoming a problem all over the world these days. 먹튀보안관 I hope there's no harm to you and your family. 먹튀가디언 Thank youhttps://twiddeo.com/And, 먹튀검증업체 Already 2020 is nearing the end. 메이저토토사이트 There were so many incidents this year. 사설토토 I am still feeling a lot of 토토사이트 inconvenience and birds due to 메이저토토사이트 the special virus. 먹튀사이트조회 It's already getting 토토사이트 a lot colder, 안전놀이터 so make sure to 먹튀검증 pack warm clothes. 먹튀요기요 Please spend the rest of https://mtygy.com/ your life happy. 메이저놀이터 Then, have a nice day!놀이터토토 https://twiddeo.com/ 검증사이트


Автор: 먹튀검증 (не зарегистрирован), дата: 22 ноября, 2020 - 05:37
#permalink

Thanks for information 먹튀검증


Автор: 직장인대출 (не зарегистрирован), дата: 22 ноября, 2020 - 05:38
#permalink

wow so good article guy 직장인대출


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
3 + 0 =
Введите результат. Например, для 1+3, введите 4.
 
Текущий раздел
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum