Javascript.RU

Регулярные выражения

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

Регулярные выражения в javascript имеют особую краткую форму и стандартный PCRE-синтаксис.

Работают они через специальный объект RegExp.

Кроме того, у строк есть свои методы search,match,replace, но чтобы их понять - разберем-таки сначала RegExp.

Объект типа RegExp, или, короче, регулярное выражение, можно создать двумя путями

/pattern/флаги
new RegExp("pattern"[, флаги])

pattern - регулярное выражение для поиска (о замене - позже), а флаги - строка из любой комбинации символов g(глобальный поиск), i(регистр неважен) и m(многострочный поиск).

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

var reg = /ab+c/i
var reg = new RegExp("ab+c", "i")

При втором вызове - т.к регулярное выражение в кавычках, то нужно дублировать \

// эквивалентны
re = new RegExp("\\w+")
re = /\w+/

При поиске можно использовать большинство возможностей современного PCRE-синтаксиса.

Свернуть/Развернуть таблицу

Символ Значение
\ Для обычных символов - делает их специальными. Например, выражение /s/ ищет просто символ 's'. А если поставить \ перед s, то /\s/ уже обозначает пробельный символ.И наоборот, если символ специальный, например *, то \ сделает его просто обычным символом "звездочка". Например, /a*/ ищет 0 или больше подряд идущих символов 'a'. Чтобы найти а со звездочкой 'a*' - поставим \ перед спец. символом: /a\*/.
^ Обозначает начало входных данных. Если установлен флаг многострочного поиска ("m"), то также сработает при начале новой строки.Например, /^A/ не найдет 'A' в "an A", но найдет первое 'A' в "An A."
$ Обозначает конец входных данных. Если установлен флаг многострочного поиска, то также сработает в конце строки.Например, /t$/ не найдет 't' в "eater", но найдет - в "eat".
* Обозначает повторение 0 или более раз. Например, /bo*/ найдет 'boooo' в "A ghost booooed" и 'b' в "A bird warbled", но ничего не найдет в "A goat grunted".
+ Обозначает повторение 1 или более раз. Эквивалентно {1,}. Например, /a+/ найдет 'a' в "candy" и все 'a' в "caaaaaaandy".
? Обозначает, что элемент может как присутствовать, так и отсутствовать. Например, /e?le?/ найдет 'el' в "angel" и 'le' в "angle."Если используется сразу после одного из квантификаторов *, +, ?, или {}, то задает "нежадный" поиск (повторение минимально возможное количество раз, до ближайшего следующего элемента паттерна), в противоположность "жадному" режиму по умолчанию, при котором количество повторений максимально, даже если следующий элемент паттерна тоже подходит.Кроме того, ? используется в предпросмотре, который описан в таблице под (?=), (?!), и (?: ).
. (Десятичная точка) обозначает любой символ, кроме перевода строки: \n \r \u2028 or \u2029. (можно использовать [\s\S] для поиска любого символа, включая переводы строк). Например, /.n/ найдет 'an' и 'on' в "nay, an apple is on the tree", но не 'nay'.
(x) Находит x и запоминает. Это называется "запоминающие скобки". Например, /(foo)/ найдет и запомнит 'foo' в "foo bar." Найденная подстрока хранится в массиве-результате поиска или в предопределенных свойствах объекта RegExp: $1, ..., $9.Кроме того, скобки объединяют то, что в них находится, в единый элемент паттерна. Например, (abc)* - повторение abc 0 и более раз.
(?:x) Находит x, но не запоминает найденное. Это называется "незапоминающие скобки". Найденная подстрока не сохраняется в массиве результатов и свойствах RegExp.Как и все скобки, объединяют находящееся в них в единый подпаттерн.
x(?=y) Находит x, только если за x следует y. Например, /Jack(?=Sprat)/ найдет 'Jack', только если за ним следует 'Sprat'. /Jack(?=Sprat|Frost)/ найдет 'Jack', только если за ним следует 'Sprat' или 'Frost'. Однако, ни 'Sprat' ни 'Frost' не войдут в результат поиска.
x(?!y) Находит x, только если за x не следует y. Например, /\d+(?!\.)/ найдет число, только если за ним не следует десятичная точка. /\d+(?!\.)/.exec("3.141") найдет 141, но не 3.141.
x|y Находит x или y. Например, /green|red/ найдет 'green' в "green apple" и 'red' в "red apple."
{n} Где n - положительное целое число. Находит ровно n повторений предшествующего элемента. Например, /a{2}/ не найдет 'a' в "candy," но найдет оба a в "caandy," и первые два a в "caaandy."
{n,} Где n - положительное целое число. Находит n и более повторений элемента. Например, /a{2,} не найдет 'a' в "candy", но найдет все 'a' в "caandy" и в "caaaaaaandy."
{n,m} Где n и m - положительные целые числа. Находят от n до m повторений элемента.
[xyz] Набор символов. Находит любой из перечисленных символов. Вы можете указать промежуток, используя тире. Например, [abcd] - то же самое, что [a-d]. Найдет 'b' в "brisket", а также 'a' и 'c' в "ache".
[^xyz] Любой символ, кроме указанных в наборе. Вы также можете указать промежуток. Например, [^abc] - то же самое, что [^a-c]. Найдет 'r' в "brisket" и 'h' в "chop."
[\b] Находит символ backspace. (Не путать с \b.)
\b Находит границу слов (латинских), например пробел. (Не путать с [\b]). Например, /\bn\w/ найдет 'no' в "noonday"; /\wy\b/ найдет 'ly' в "possibly yesterday."
\B Обозначает не границу слов. Например, /\w\Bn/ найдет 'on' в "noonday", а /y\B\w/ найдет 'ye' в "possibly yesterday."
\cX Где X - буква от A до Z. Обозначает контрольный символ в строке. Например, /\cM/ обозначает символ Ctrl-M.
\d находит цифру из любого алфавита (у нас же юникод). Испльзуйте [0-9], чтобы найти только обычные цифры. Например, /\d/ или /[0-9]/ найдет '2' в "B2 is the suite number."
\D Найдет нецифровой символ (все алфавиты). [^0-9] - эквивалент для обычных цифр. Например, /\D/ или /[^0-9]/ найдет 'B' в "B2 is the suite number."
\f,\r,\n Соответствующие спецсимволы form-feed, line-feed, перевод строки.
\s Найдет любой пробельный символ, включая пробел, табуляцию, переводы строки и другие юникодные пробельные символы. Например, /\s\w*/ найдет ' bar' в "foo bar."
\S Найдет любой символ, кроме пробельного. Например, /\S\w*/ найдет 'foo' в "foo bar."
\t Символ табуляции.
\v Символ вертикальной табуляции.
\w Найдет любой словесный (латинский алфавит) символ, включая буквы, цифры и знак подчеркивания. Эквивалентно [A-Za-z0-9_]. Например, /\w/ найдет 'a' в "apple," '5' в "$5.28," и '3' в "3D."
\W Найдет любой не-(лат.)словесный символ. Эквивалентно [^A-Za-z0-9_]. Например, /\W/ и /[^$A-Za-z0-9_]/ одинаково найдут '%' в "50%."
\n где n - целое число. Обратная ссылка на n-ю запомненную скобками подстроку. Например, /apple(,)\sorange\1/ найдет 'apple, orange,' в "apple, orange, cherry, peach.". За таблицей есть более полный пример.
\0 Найдет символ NUL. Не добавляйте в конец другие цифры.
\xhh Найдет символ с кодом hh (2 шестнадцатиричных цифры)
\uhhhh Найдет символ с кодом hhhh (4 шестнадцатиричных цифры).

Чтобы просто проверить, подходит ли строка под регулярное выражение, используется метод test:

if ( /\s/.test("строка") ) {
...В строке есть пробелы!...
}

Метод test начинает поиск, начиная со свойства lastIndex объекта RegExp, если оно установлено.

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

Например,

// Найти одну d, за которой следует 1 или более b, за которыми одна d
// Запомнить найденные b и следующую за ними d
// Регистронезависимый поиск
var myRe = /d(b+)(d)/ig;
var myArray = myRe.exec("cdbBdbsbz");

В результате выполнения скрипта будут такие результаты:

Объект Свойство/Индекс Описания Пример
myArray Содержимое myArray. ["dbBd", "bB", "d"]
index Индекс совпадения (от 0) 1
input Исходная строка. cdbBdbsbz
[0] Последние совпавшие символы dbBd
[1], ...[n] Совпадения во вложенных скобках, если есть. Число вложенных скобок не ограничено. [1] = bB
[2] = d
myRe lastIndex Индекс, с которого начинать следующий поиск. 5
ignoreCase Показывает, что был включен регистронезависимый поиск, флаг "i". true
global Показывает, что был включен флаг "g" поиска всех совпадений. true
multiline Показывает, был ли включен флаг многострочного поиска "m". false
source Текст паттерна. d(b+)(d)

Если в регулярном выражении включен флаг "g", Вы можете вызывать метод exec много раз для поиска последовательных совпадений в той же строке. Когда Вы это делаете, поиск начинается на подстроке str, с индекса lastIndex. Например, вот такой скрипт:

var myRe = /ab*/g;
var str = "abbcdefabh";
while ((myArray = myRe.exec(str)) != null) {
	var msg = "Found " + myArray[0] + ".  ";
	msg += "Next match starts at " + myRe.lastIndex;
	print(msg);
}

Этот скрипт выведет следующий текст:

Found abb. Next match starts at 3
Found ab. Next match starts at 9

В следующем примере функция выполняет поиск по input. Затем делается цикл по массиву, чтобы посмотреть, есть ли другие имена.

Предполагается, что все зарегистрированные имена находятся в массиве А:

var A = ["Frank", "Emily", "Jane", "Harry", "Nick", "Beth", "Rick",
         "Terrence", "Carol", "Ann", "Terry", "Frank", "Alice", "Rick",
         "Bill", "Tom", "Fiona", "Jane", "William", "Joan", "Beth"];

function lookup(input)
{
  var firstName = /\w+/i.exec(input);
  if (!firstName)
  {
    print(input + " isn't a name!");
    return;
  }

  var count = 0;
  for (var i = 0; i < A.length; i++)
  {
    if (firstName[0].toLowerCase() == A[i].toLowerCase())
      count++;
  }
  var midstring = (count == 1) ? " other has " : " others have ";
  print("Thanks, " + count + midstring + "the same name!")
}

Следующие методы работают с регулярными выражениями из строк.

Все методы, кроме replace, можно вызывать как с объектами типа regexp в аргументах, так и со строками, которые автоматом преобразуются в объекты RegExp.

Так что вызовы эквивалентны:

var i = str.search(/\s/)
var i = str.search("\\s")

При использовании кавычек нужно дублировать \ и нет возможности указать флаги. Если регулярное выражение уже задано строкой, то бывает удобна и полная форма

var regText = "\\s"
var i = str.search(new RegExp(regText, "g"))

Возвращает индекс регулярного выражения в строке, или -1.

Если Вы хотите знать, подходит ли строка под регулярное выражение, используйте метод search(аналогично RegExp-методы test). Чтобы получить больше информации, используйте более медленный метод match(аналогичный методу RegExp exec).

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

function testinput(re, str){
   if (str.search(re) != -1)
      midstring = " contains ";
   else
      midstring = " does not contain ";
   document.write (str + midstring + re.source);
}

Если в regexp нет флага g, то возвращает тот же результат, что regexp.exec(string).

Если в regexp есть флаг g, то возвращает массив со всеми совпадениями.

Чтобы просто узнать, подходит ли строка под регулярное выражение regexp, используйте regexp.test(string).

Если Вы хотите получить первый результат - попробуйте regexp.exec(string).

В следующем примере match используется, чтобы найти "Chapter", за которой следует 1 или более цифр, а затем цифры, разделенные точкой. В регулярном выражении есть флаг i, так что регистр будет игнорироваться.

str = "For more information, see Chapter 3.4.5.1";
re = /chapter (\d+(\.\d)*)/i;
found = str.match(re);
alert(found);

Скрипт выдаст массив из совпадений:

  • Chapter 3.4.5.1 - полностью совпавшая строка
  • 3.4.5.1 - первая скобка
  • .1 - внутренняя скобка

Следующий пример демонстрирует использование флагов глобального и регистронезависимого поиска с match. Будут найдены все буквы от А до Е и от а до е, каждая - в отдельном элементе массива.

var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var matches = str.match(regexp);
document.write(matches);

// matches = ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']

Метод replace может заменять вхождения регулярного выражения не только на строку, но и на результат выполнения функции. Его полный синтаксис - такой:

var newString = str.replace(regexp/substr, newSubStr/function)
regexp
Объект RegExp. Его вхождения будут заменены на значение, которое вернет параметр номер 2
substr
Строка, которая будет заменена на newSubStr.
newSubStr
Строка, которая заменяет подстроку из аргумента номер 1.
function
Функция, которая может быть вызвана для генерации новой подстроки (чтобы подставить ее вместо подстроки, полученной из аргумента 1).

Метод replace не меняет строку, на которой вызван, а просто возвращает новую, измененную строку.

Чтобы осуществить глобальную замену, включите в регулярное выражение флаг "g".

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

var ab = "a b".replace("\\s","..") // = "a b"

Вызов replace оставил строку без изменения, т.к искал не регулярное выражение \s, а строку "\s".

В строке замены могут быть такие спецсимволы:

Pattern Inserts
$$ Вставляет "$".
$& Вставляет найденную подстроку.
$` Вставляет часть строки, которая предшествует найденному вхождению.
$' Вставляет часть строки, которая идет после найденного вхождения.
$n or $nn Где n или nn - десятичные цифры, вставляет подстроку вхождения, запомненную n-й вложенной скобкой, если первый аргумент - объект RegExp.

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

В функции можно динамически генерировать и возвращать строку подстановки.

Первый параметр функции - найденная подстрока. Если первым аргументом replace является объект RegExp, то следующие n параметров содержат совпадения из вложенных скобок. Последние два параметра - позиция в строке, на которой произошло совпадение и сама строка.

Например, следующий вызов replace возвратит XXzzzz - XX , zzzz.

function replacer(str, p1, p2, offset, s)
{
return str + " - " + p1 + " , " + p2;
}
var newString = "XXzzzz".replace(/(X*)(z*)/, replacer)

Как видите, тут две скобки в регулярном выражении, и потому в функции два параметра p1, p2.
Если бы были три скобки, то в функцию пришлось бы добавить параметр p3.

Следующая функция заменяет слова типа borderTop на border-top:

function styleHyphenFormat(propertyName)
{
  function upperToHyphenLower(match)
  {
    return '-' + match.toLowerCase();
  }
  return propertyName.replace(/[A-Z]/, upperToHyphenLower);
}

В некоторых реализациях javascript регэкспы, заданные коротким синтаксисом /.../ - статичны. То есть, такой объект создается один раз в некоторых реализациях JS, например в Firefox. В Chrome все ок.

function f() {
  // при многократных заходах в функцию объект один и тот же
  var re = /lalala/     
}

По стандарту эта возможность разрешена ES3, но запрещена ES5.

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

При поиске всех совпадений в цикле проблем не возникает, т.к. последняя итерация (неудачная) обнуляет lastIndex.

Для общего понимания регулярных выражений можно почитать Статью в wikipedia.

Более подробно они описаны в книге (англ.) Beginning Regular Expressions.


Автор: KOLANICH, дата: 22 ноября, 2008 - 23:52
#permalink

\/-это косая черта?


Автор: Илья Кантор, дата: 23 ноября, 2008 - 08:24
#permalink

Это косая черта "/", внутри регекспа /.../ она экранируется бэкслешем "\".
Например, регексп только для косой черты выглядит вот так: /\//


Автор: Тёмик (не зарегистрирован), дата: 27 декабря, 2008 - 00:41
#permalink

Помогите пожалуйста!

В переменной str находятся несколько слов, разделённых между собой пробелом. Нужно записать в массив myArray только те из них, которые начинаются с a и заканчиваются на b. Т.е. что-то вроде:

var str = 'ab aa acb abc acdcdcdb'
var myRe = /текст паттерна/gi
var myArray = myRe.exec(str);

В результате должно получиться:

myArray[0] = 'ab'
myArray[1] = 'acb'
myArray[2] = 'acdcdcdb'

Вопрос: что писать в тексте паттерна?


Автор: Minh (не зарегистрирован), дата: 20 мая, 2009 - 09:32
#permalink

Если пользуетесь exec, то вам понадобится цикл, думаю лучше использовать match в вашем случае, можно например так:

var str = 'ab aa acb abc acdcdcdb'
var myRe = /\ba\w*b\b/gi
document.write(str.match(myRe))


Автор: aldan8, дата: 21 сентября, 2009 - 00:48
#permalink

Или ещё с таким патерном:

var pat = /a(\w)*b(\s|\0)/g
var str = "ab aa acb abc acdcdcdb sdabxx abxxxxxb abyyyyy"
var arrRes = str.match(pat)
for(var i = 0; i<arrRes.length; i++)
   document.write(arrRes[i] + ' <br />')

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

Извините, что постоянно повторяюсь но просто вы "изобрели столько велосипедов", а про стандартную функцию объекта String забыли!!!
var arr = 'ab aa acb abc acdcdcdb'.split(' ');


Автор: growler, дата: 5 августа, 2012 - 19:34
#permalink

тю. а чего не так?

var str = 'ab aa acb abc acdcdcdb';
var myRe = /a\w*b/gi;
var myArray = [];
var res;
while((res = myRe.exec(str)) != null) {
    myArray.push(res[0]);
}
console.log(myArray);

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

Разбей на массив эту строку, как explode в php, и потом ^a*b$


Автор: Тёмик (не зарегистрирован), дата: 27 декабря, 2008 - 23:10
#permalink

Не пойму зачем на массив разбивать? Смысл?

Ну. допустим. разбил - не фурычит! В качестве результата ничего не выдаёт.

Я с JS знаком всего-лишь немногим больше недели. Можно всё немного поподробней объяснить? Даже лучше исходник скрипта готовый выложи.


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

Как ты разбил? Что за вопросы насчёт "смысла" ? Тебе в итоге же массив и нужен, тогда какие оправдания чем этот способ не устаивает?
Надеюсь пробелы выкинул? Найди аналог phpшного explode, если не знаешь как правильно организовать. PHP JS тебе в лапы.
Потом в цикле for пробегаешься по массиву (не ищи в манах ссылок вида & и прочего php-дерьма, в JS массив СРАЗУ передаётся по жёсткой ссылке), если регексп не удовлетворяет - удаляешь его нахрен из массива. Вот и всё готово, в массиве останется только то что нужно. Исходник некогда ваять, время $$$.


Автор: latteo (не зарегистрирован), дата: 2 января, 2009 - 18:59
#permalink

Подскажите нубу через что можно поиск по всей странице сделать, пробовал через вариации win.document.getElementByTag('body').innerHTML не хочет Sad


Автор: latteo (не зарегистрирован), дата: 3 января, 2009 - 00:08
#permalink

Ура научился document.body.innerHTML помог и статья http://javascript.ru/start/dom/intro


Автор: Se_Pe (не зарегистрирован), дата: 19 марта, 2009 - 14:12
#permalink

Подскажите, почему если в примере:

...
var newString = "XXzzzz".replace(/(X*)(z*)/, replacer)

заменить строку XXzzzz на например aaaXXzzzz, то того же результата не получиться. И что нужно написать в паттерне, чтоб получить тот же результат, что и в первом случае?


Автор: RC (не зарегистрирован), дата: 23 августа, 2009 - 20:45
#permalink

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

var newString = "XXzzzz".replace(/.*(X*)(z*)/, replacer)

то должно помочь.


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

а как быть если нужно заменить расширение допустим albom/123123.jpeg jpeg на html


Автор: B@rmaley.e><e (не зарегистрирован), дата: 6 мая, 2009 - 11:59
#permalink
'albom/123123.jpeg'.replace(/\.jpeg$/i,'.html');

Автор: Alekson, дата: 7 июля, 2009 - 14:43
#permalink

Как сделать просмотр назад?
?<= и ?#n не работают.


Автор: Илья Кантор, дата: 7 июля, 2009 - 21:22
#permalink

Попробуйте \\1


Автор: orange, дата: 21 января, 2010 - 23:16
#permalink

то же возникла такая проблема Sad а что значит \\1, где и как именно писать?


Автор: orange, дата: 21 января, 2010 - 23:46
#permalink

да и вообще, есть ли просмотр назад в ECMAScript v 3? В книге Дэвида Флэнагана(JS подробное руководство, 5 изд) написано следующее:

11.1.7. Средства регулярных выражений Perl, не поддерживаемые в JavaScript
Мы говорили, что ECMAScript v3 определяет относительно полное подмножество средств регулярных выражений из Perl 5. Развитые средства Perl, не поддерживаемые ECMAScript, включают следующее:
• флаги s (однострочный режим) и x (расширенный синтаксис);
• управляющие последовательности \a, \e, \l, \u, \L, \U, \E, \Q, \A, \Z, \z и \G;
• (?<= – положительное условие на предыдущие символы и отрицатель
ное условие на предыдущие символы;
• комментарий (?# и прочий расширенный синтаксис (?.


Автор: mister_maxim, дата: 4 апреля, 2011 - 15:45
#permalink

Действительно - очень обидно что нет непоглощающего поиска назад Sad
это фундаментальная с моей точки зрения понятие.
Например, я бы не хотел бы включать в результат нахождения то, что было нужно для проверки идущего до самого нахождения, и это очень кстати при замене replace.
А вообще я хотел бы чтобы replace было не только для строки нахождения $0, но и для каждого кармана в отдельности: от $0 и до $n, т.е. чтобы кроме параметра строки замены в методе replace, были строки замены для каждого кармана.


Автор: Михаил_новичок (не зарегистрирован), дата: 7 августа, 2011 - 03:50
#permalink

Как я понимаю - восновном, такие задачи используются для поиска по внешним страницам, то есть открывать их придется PHP, или ему подобными. Там эти средства включены и работают на ура. А если поиск по внутренней странице - можно лучше подогнать регэксп, так как известно больше информации...


Автор: jed (не зарегистрирован), дата: 7 октября, 2009 - 00:13
#permalink

Начал эксперементировать с примером разбора "3.4.5.1"

text = "Chapter 3.4.5.1";
regex = /chapter (?Sad\d)(\.\d)?(\.\d)?(\.\d)?)/i;
result = text.match(regex);
result[0] = '';
Log("result = " + result);

Показывает: result = ,3,.4,.5,.1
Как раз то, что надо - каждая цифра отделено.

regex = /chapter (\d)((\.\d)+)/i;
Показывает: result = ,3,.4.5.1,.1
Это неудача - первая цифра отдельно, остальные вместе .4.5.1

Вопрос: как изменить второй regex, чтобы он выдавал как первый, но был без этих повторов (\.\d)?(\.\d)?(\.\d)?


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

arrRez = "Chapter 3.4.5.1".replace(/[^\d\.]/g,'').split('.');


Автор: jed (не зарегистрирован), дата: 7 октября, 2009 - 00:15
#permalink
text = "Chapter 3.4.5.1";
  regex = /chapter (?:(\d)(\.\d)?(\.\d)?(\.\d)?)/i;
  result = text.match(regex);
  result[0] = '';
  Log("result = " + result);

Автор: subzey (не зарегистрирован), дата: 5 ноября, 2009 - 17:50
#permalink

[xyz] Набор символов. Находит любой из перечисленных символов. Вы можете указать промежуток, используя тире

Ох, не тире, а дефис. Хотя и употребляется в смысле «тире».


Автор: Ыфьфдлщ (не зарегистрирован), дата: 20 ноября, 2009 - 00:52
#permalink

народ помогите плиз составить регулярку а то немогу сделать как надо

вот приблизительно строка

Kuzyаааaj456 dfdf наградил федю

надо разделить строку на 2 части до наградил и после
при этом Kuzyаааaj456 dfdf может состоять из Nго количества слов, букв, и содержать любые символы (лат\нелат\цифры\спецсимволы)


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

/(.+?) наградил (.+?)/


Автор: Ыфьфдлщ (не зарегистрирован), дата: 22 ноября, 2009 - 21:42
#permalink

спасибо но чет непомогло первая переменная отобразилась верно а от второй одна буква (


Автор: ATr (не зарегистрирован), дата: 23 ноября, 2009 - 15:59
#permalink

/^(.+?) наградил (.+?)$/


Автор: Гость (не зарегистрирован), дата: 8 декабря, 2009 - 20:54
#permalink

написано чтобы напомнить но никак не объяснить. Оценка 2


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

+1
Человеку, первый раз встречающемуся с регулярными выражениями, очень тяжело понять по этой статье, как же их надо использовать


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

Эта статья ни в коей мере не ставит целью научить регулярным выражениям. Скорее она для тех, кто уже знает, что такое регэкспы и изучает их работу с ними в javascript.


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

Для тех кто хочет научится писать хорошие популярные статьи:
1. в начале статьи приводится Аннотация ( в которой кратко приводится как содержание статьи, так и характеристика потенциальной читательской аудитории)
2. в конце статьи приводится списки использованной и рекомендуемой литературы (для рекомендуемой литературы ссылки на википедию и мануалы - не катят, хотя в использованной литературе могут быть приведены)
3. совсем шикарно, если рекомендованная (не использованная, а, именно, рекомендуемая) литература снабжена аннотацией
4. для всего списка литературы приводится язык и год издания


Автор: Астра (не зарегистрирован), дата: 22 декабря, 2009 - 20:10
#permalink

не могу въехать в "запоминающие скобки" (вроде, куда уж проще)
Мне нужно из страницы выбрать и запомнить определенные числа (положительные и отрицательные) . Посоветовали воспользоваться match, а числа обрамить псевдотегами. вот какой паттен в итоге получился:

var rates = data.match(/<!--comRate-->(-?\d+)<!--\/comRate-->/g);

но когда проверяю alert (rates); массив выдает вместе с псевдотегами (типа 1, -1)
где я ошиблась


Автор: Астра (не зарегистрирован), дата: 22 декабря, 2009 - 20:12
#permalink

*блин, комменты ушли
но когда проверяю alert (rates); массив выдает вместе с псевдотегами (типа

<!--comRate-->1<!--/comRate-->, <!--comRate-->-1<!--/comRate-->

)


Автор: subzey, дата: 23 декабря, 2009 - 00:23
#permalink

В результирующем массиве содержимое скобок находится начиная с индекса 1.

Например:

var a = /\s*(+7|8)[\s\-\(]+(\d{3})[\s\-\)]+(\d{3})[-\s]+(\d{2})[-\s]+(\d{2})\s*/.exec(" +7 (901) 234 56 78 ");
a[0]; /*  +7 (901) 234 56 78  */
a[1]; /* +7 */
a[2]; /* 901 */
a[3]; /* 234 */
a[4]; /* 56 */
a[5]; /* 78 */
a[6]; /* undefined */

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

При использовании функции копирование в буфер - не сохраняются переводы каретки


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

var a = /\s*(+7|8)[\s\-\(]+(\d{3})[\s\-\)]+(\d{3})[-\s]+(\d{2})[-\s]+(\d{2})\s*/.exec(" +7 (901) 234 56 78 ");

пздц массив, это какой маньяк писал? это же полный пиздец не понятно нихера


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

Объясните разницу между [0-9] и \d
В коде ниже [0-9] и \d дают разные результаты, true и fasle соответственно.
Кодировка файла utf-8

var pattern = new RegExp('^[0-9]{7,8}$');
var str='1234567';
alert(pattern.test(str));

Автор: Илья Кантор, дата: 29 декабря, 2009 - 18:58
#permalink

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

var pattern = new RegExp('^\\d{7,8}$');
...

Автор: bga (не зарегистрирован), дата: 8 января, 2010 - 16:54
#permalink

вот еще полезный метод для оптимизации регулярных выражений RegExp.compile


Автор: Ц52 (не зарегистрирован), дата: 23 января, 2010 - 16:24
#permalink

Вот тут смотрю ваше руководство
Набор символов. Находит любой из перечисленных символов. Вы можете указать промежуток, используя тире. Например, [abcd] - то же самое, что [a-d]. Найдет 'b' в "brisket" и 'c' в "ache".

Очень не понятно почему 'c' в "ache" . Сначала проверил а - английская (подумал что русская сначала). Потом зашел http://www.pcre.ru/eval/ и проверил там. Выдает результат поиска:
0: (a)
1: (c)
Т.е. найдет и а и c. Вопрос так почему будет c?


Автор: tuschkan, дата: 23 февраля, 2010 - 14:19
#permalink

Задача состоит в том, чтобы проверять вводимое значении на соответствие шаблону 4 цифры/2 цифры или тоже самое без"/" (номер дома через дробь: 457/5) или просто номер дома.

У меня такое выражение:\d{1,4}\/\d{1,2}|\d{1,4}
но оно допускает и буквы и точки и прочие знаки. Подскажите, пожалуйста, как мне разрешить только цифры и косую?


Автор: Ivan1024 (не зарегистрирован), дата: 24 апреля, 2011 - 19:00
#permalink

вот так
/^\d{1,4}(\/\d{1,2})?$/


Автор: T0xA (не зарегистрирован), дата: 4 марта, 2010 - 03:08
#permalink

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

var myRe = /(.*)\.(.*)/;
myRe.exec('el1.el2');

возвращает: el1.el2,el1,el2

el1.el2 - мне не нужно.
я догадываюсь из-за чего это происходит, но возможно ли как то сделать чтоб не проходило условие в котором есть точка?


Автор: immeasurability (не зарегистрирован), дата: 12 марта, 2010 - 15:21
#permalink

подскажите пжз!

есть выражение replace(/(\[.*\])/gi,'xxx') которое меняет все что находится в скобках на xxx что дописать в эту часть /(\[.*\])/gi для того чтобы менялось все что в скобках и один любой символ с лева?

к примеру есть текст www-[yyy]-zzz нужно чтоб все что в скобках и знак минус был заменен -[yyy], но с лева может быть не только знак минус но и любой другой символ!

Спасибо за внимание!!!


Автор: sshishov, дата: 29 ноября, 2010 - 01:46
#permalink

Просто поставить точку (любой символ) перед квадратной скобкой, а именно:

/(.\[.*\])/gi

Автор: EugenyK, дата: 8 апреля, 2010 - 20:33
#permalink

Я так понимаю, что в javascript в отличии от php PCRE, чтобы точка "." обозначала точку в операторе альтернативы [], её следует экранировать?


Автор: Rem (не зарегистрирован), дата: 23 апреля, 2010 - 21:19
#permalink

Вопрос по теме. Думаю, и другим будет полезен. Помогите ПОНЯТЬ.
В чате (на аяксе) есть функция замены длинных слов (многие пишут, игнорируя пробелы). Вот она:

var text = msg.replace(/(.[^\s\<\>]{15})/gi,
  "$1\n");

Работает, но.. как?
Что значат здесь знаки больше/меньше с регеспами?


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

Прочто спасибо))))


Автор: mosf1k (не зарегистрирован), дата: 13 июля, 2010 - 14:33
#permalink

Подскажите, каким образом можно отлавливать все знаки препинания?
например, если нужно удалять запятые и точки из входной строки?


Автор: B@rmaley.e><e, дата: 13 июля, 2010 - 15:53
#permalink
alert( 'Запятые, и. точки. тут, совсем. не, нужны'.replace(/[,.]/g, '') );

Автор: Гость (не зарегистрирован), дата: 28 июля, 2010 - 03:23
#permalink

Есть строка состоящая из натуральных чисел, разделенная ","
надо преобразовать в массив.
Пример (работает), если мы знаем размерность массива
var a = /(\d+)[\,](\d+)[\,](\d+)[\,](\d+)/.exec("10,150,0,1230");
alert("a[0] = " + a[0]+'\n'+
"a[1] = " + a[1]+'\n'+
"a[2] = " + a[2]+'\n'+
"a[3] = " + a[3]+'\n'+
"a[4] = " + a[4]
);

Если мы не знаем размерности массива (числа натуральных строк в строке)
Пример (типа) (НЕ РАБОТАЕТ):
var a = /(\d+)[[\,](\d+)]*/.exec("10,150,0,1230,11,1234");
Можно ли обойтись без дополнительного цикла (только регулярным выражением)?



Автор: MainBuh (не зарегистрирован), дата: 30 июля, 2010 - 12:39
#permalink

А так уже нельзя var arr="10,150,0,1230,11,1234".split(',');


Автор: Ivan1024 (не зарегистрирован), дата: 24 апреля, 2011 - 19:45
#permalink

"10,150,0,1230".match( /\d+/g )


Автор: Ranerg, дата: 15 августа, 2012 - 09:30
#permalink

зачем ты внутри квадратных скобок записываешь символы в escape-последовательности, когда внутри этих скобок они принимают символьный вид и без косой черты?


Автор: Гость (не зарегистрирован), дата: 31 июля, 2010 - 11:23
#permalink

Существует ли разница при работе регулярного выражения с английскими и русскими буквами?

Что-то русские буквы не ищутся..


Автор: Гость (не зарегистрирован), дата: 31 марта, 2011 - 15:51
#permalink

Есть.
[A-Za-z] -промежуток с латинскими буквами
[А-Яа-я] - c русскими


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

>Есть.
>[A-Za-z] -промежуток с латинскими буквами
>[А-Яа-я] - c русскими

Я бы сказал что с русскими так:

[а-яА-ЯёЁ]


Автор: Increazon, дата: 13 сентября, 2010 - 19:26
#permalink

Есть строка:

Москва <a href="http://a.ru">лучше</a> Питера

Как с помощью регулярных найти HTML теги, при этом выделить все в массив:

array[0] = "Москва "
array[1] = '<a href="http://a.ru">'
array[2] = "лучше"
array[3] = "</a>"
array[4] = " Питера"

Автор: MikhailGirshberg, дата: 11 октября, 2010 - 16:16
#permalink
<html>
<body>

<script type="text/javascript">
var str='Питер <a href="http://a.ru">лучше, чем </a> Москва'
var re = /<[^>]*>|[а-я,\s]+/gi
var my_array = str.match(re)

for(var i in my_array){
document.writeln('my_array[' + i + '] = \'' + my_array[i].replace(/<([^>]*)>/gi, '&lt;$1&gt;') + '\'<br/>')
}
// 
// my_array[0] = 'Питер '
// my_array[1] = '<a href="http://a.ru">'
// my_array[2] = 'лучше, чем '
// my_array[3] = '</a>'
// my_array[4] = ' Москва'
//

</script>

</body>
</html>

а на вопрос "чем лучше?" мы с гордостью ответим: "чем Москва"
;-?


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

Клево! Мне понравилось! Раньше я не пользовался регулярными выражениями (задач типичных для их использования не было), но вот прочитал статью и применил на работе (правда я программирую на Java:)). Статья все подробно и хорошо объясняет, спасибо!


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

Помогите пожалуйста найти в url один из параметров GET-запроса.

Вот такое выражение что-то ничего не находит:
find_url_menu = /(\?.*$)menu=[0-9]+\1/


Автор: sshishov, дата: 29 ноября, 2010 - 02:24
#permalink

Что то наподобии этого:

function my(){
  var str='http://coupon.dayoffer.ru/?theme=billiard&coupon_id=VIGODA982500592&utm_source=SalesGenerator&menu=99&utm_medium=Click&utm_campaign=InShop.Ru&utm_content=Bouling';
  var myRe=/^.*?\?.*?(menu=[0-9]+).*$/g;
  var newStr = str.replace(myRe,"$1");
  alert(newStr); // menu=99
}

my();

Автор: Ivan1024 (не зарегистрирован), дата: 24 апреля, 2011 - 21:18
#permalink

str.match( /menu=\w*/g )


Автор: Mickers (не зарегистрирован), дата: 27 октября, 2010 - 11:41
#permalink

Имеется строка типа "\\Volume 1\test\range\12345.jpeg"
как ее преобразовать к UNIX-виду "//Volume 1/test/range.jpeg"?

\t воспринимаются как табуляция, \12 -спецсимволы и пр.


Автор: B@rmaley.e><e, дата: 27 октября, 2010 - 22:55
#permalink

Если строка получена извне (AJAX запросом, введена пользователем, получена как свойство какого-нибудь объекта), она воспринимается как надо.
Если она в таком виде вставляется в код, то есть смысл обработать ее на сервере, либо заменив слеши одного типа на другие, либо удвоив каждый слеш.


Автор: shkur, дата: 3 ноября, 2010 - 01:53
#permalink

как в regexp впихнуть переменную?

var nLastCol = 8;
var str = "--,--,--,--,--,--,--,--" //(ну на самом деле это Object)
if (/(--,?){8,8}/i.test(ss.getRange(ss.getLastRow(), 1, 1, nLastCol).getValues().toString())){
        Browser.msgBox('TRUE');
    } else {Browser.msgBox('FALSE');}

вместо {8,8} надо поставить {nLastCol,nLastCol}


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

Как заставить это работать с русскими символами?


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

Как заставить это работать с русскими символами?


Автор: Гость (не зарегистрирован), дата: 31 марта, 2011 - 15:54
#permalink

[А-Яа-я]


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

Есть строка, состоящая из составных имен, например: "Klein Stadt Prag, Praga in Bohemia". Надо удалить только те пробелы, которые идут после запятой. Почему это выражение

alert("Klein Stadt Prag, Praga in Bohemia".replace(/(?:,)\s/g, ''));

удаляет и запятую, которая, вроде как, в незапоминающих скобках?


Автор: B@rmaley.e><e, дата: 16 ноября, 2010 - 11:46
#permalink

А при чем тут скобки? Удаляется все, что попало под шаблон. А запятая попадает под него.


Автор: SergO_Cz, дата: 16 ноября, 2010 - 18:28
#permalink

Получается, чтобы замена работала, как я хочу, надо делать так:

alert("Klein Stadt Prag, Praga in Bohemia".replace(/,\s/g, ','));

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

var str = "'Klein Stadt Prag', Praga in Bohemia";

Как более правильно:

str.replace(/'|,\s/g, function(s){
  if (s==', ') return ','; 
  return '';
});
//используем одно сложное рег. выражение и функцию для выбора вариантов замены

или

str.replace(/,\s/g, ',').replace(/'/g, '');
//2 рег. выражения, и последовательная замена.

?


Автор: B@rmaley.e><e, дата: 16 ноября, 2010 - 19:08
#permalink
str.replace(/(,)\s|'/g, '$1')

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


Автор: SergO_Cz, дата: 17 ноября, 2010 - 12:55
#permalink

О! Про такой вариант я не догадался.
Ну, да, варианты равнозначны. Мне, чтобы обработать лишь одно поле ввода, тесты не обязательны, можно брать любой вариант. Так что, оставим тесты тем, кому это необходимо.
B@rmaley.e><e, спасибо за советы. Автору - за статью.


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

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


Автор: Ярослав_A, дата: 3 октября, 2012 - 16:16
#permalink

Там написано i - регистр неважен


Автор: Александр_ (не зарегистрирован), дата: 7 января, 2011 - 16:43
#permalink

Как сделать так, чтобы при нахождении любого символа \s или \W был возвращён ноль (ложь)

так не работает

flag = !msg.match(/\s|\W/);

и так тоже..

flag = (msg.search(/\s|\W/)!= -1);

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

\s|\W - условие избыточное, поскольку \W уже содержит все символы из \s
flag = (msg.search(/\W/)!= -1);
должно нормально отработать


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

Есть строка, например - "_ха_блаблабла_хо_"
нужно получить содержимое обрамленное какими-то знаками (в данном случае - подчеркивания), без самих знаков.

делаю:

var s = "_ха_блаблабла_хо_"
var myRe = /_(.+?)_/g;
var myArray = s.match(myRe);

полуаю:

myArray - [ _ха_ , _хо_ ]

а мне надо:

myArray - [ ха , хо ]

можно ли этого добиться с помощью выражений?


Автор: eval, дата: 12 марта, 2011 - 14:41
#permalink

попалась строка напичканая символами типа " и пробелов ) сколько уже перегуглил и переяндексил + перечитал статей и перепробовал вариантов ... ничего не выходит !!! составьте пожалуйста регу на replace для очистки всего кроме цифр и букв расположенных вместе типа хеша пример : куча пробелов - 914nm1413nm14 " и дальше куча пробелов...
заранее благодарен !!!


Автор: mister_maxim, дата: 4 апреля, 2011 - 16:23
#permalink

попробуй так:
str.replace(/\s*$/gm, ',');
надеюсь выдаст нечто близкое к твоему желаемому результату, если не совсем так что-то - думаю легко увидишь, что поправить, например запятую убрать.


Автор: Researcher, дата: 23 марта, 2011 - 15:55
#permalink
function example(value) { 
   return (/^abc$/gi).test(value); 
}
alert(example("abc") + ", " + example("abc"));

вот такая штука везде кроме фф3 выдает true, true, а в нем - true, false.
по какой-то неведомой причине фф3 считает, что при повторном вызове функции можно использовать ссылку на старый объект регулярки, а не создавать новый. если изменить конструкцию на new RegExp, то все нормально становится.


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

Как заставить работать со всеми буквами UTF-8?

Тут все предлагают для русских буквы использовать
[А-Яа-я]

А как быть с другими алфавитами?

В PHP это решается вот так:
preg_replace("/[^\p{L}0-9\+\-\_:\.@ ]/u", "", $_string));
\p{L} = все буквы
/u = работать с UTF-8

Как заставить JavaScript работать со всеми буквами всех алфавитов?

\w не подходит, так как вырезает все символы больше 128.


Автор: z700i, дата: 13 апреля, 2011 - 15:56
#permalink
a001.replace(/([()])/g, "\\$1"))

что здесь означает \\$1 и что оно делает?


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

у меня проболема возникла с командой test.Ввожу 100 выводит слово ERROR
var pricePattern = /^[0-9]+$^/;
var errorMessage = "";
function checkPrice(price)
{

if(!pricePattern.test(price)) {
alert("error");
errorMessage +="*" + errorPrice + "\n";
}
}


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

Возникла проблема:
как заменить символ "\" в строке, если после него идет символ n, то не находит.
в строке может идти любой символ после символа "\". мне нужно просто найти этот символ.
помогите пожалуйстаа


Автор: guffer, дата: 25 мая, 2011 - 08:38
#permalink

помогите плиз решить такую задачку:
мне нужно превратить абсолютный путь к файлу в относительный, то есть

var res='src="file:D:///sss/content/myimg.jpg"'.replace('тутНезнаю','src=\''content');

в пути всегда есть папка "content" мне нужно отсечь все что идет до этой папки. я пробовал писать:

'src=\"file.+?\/content';

и еще кучу вариантов, но как-то ни какой замены не происходит.


Автор: kobezzza, дата: 25 мая, 2011 - 12:39
#permalink

1) Чтобы заменить символ \, нужно написать \\.

2) var res='src="file:D:///sss/content/myimg.jpg"'.replace(/.*?content\/(.*?)"/, 'src="content/$1"');


Автор: uchta (не зарегистрирован), дата: 31 мая, 2011 - 23:25
#permalink

Только начинаю во всём разбираться!Помогите пожалуйста написать регу, которая будет искать в текстовом файле слова между словами start и end и менять их на слово mid. Очень нужно!Заранее благодарна!!!


Автор: bendator (не зарегистрирован), дата: 2 июня, 2011 - 14:15
#permalink

Никак не могу решить проблему. Javascript-модуль получает RegExp извне, и строку, которую надо проверить по полученному рег.выражению.
Например, получено рег.выражение "[0-9]{5}|[0-9]{8}" и строка "102040".
Методы test и match дают неправильный результат:

strRe = "[0-9]{5}|[0-9]{8}";
src = "102040";
var re = new RegExp(strRe);
var result1 = re.test(src); // возвращает true, что неверно
Проверяем при помощи match
var result2 = src.match(re); // тоже находит совпадения, т.к. result2.length=1

Как правильно построить проверку? Добавление символов ^ и $ в начало и конец строки с рег.выражением проблему не решают.


Автор: Maksat (не зарегистрирован), дата: 3 июня, 2011 - 09:41
#permalink

Если ты хочешь чтобы попадали только с размером 5 или 8 то вот решение:

strRe = "^[0-9]{5}$|^[0-9]{8}$";
src = "102040";
var re = new RegExp(strRe);
var result1 = re.test(src);//false
var result2 = src.match(re);//null

Автор: bendator (не зарегистрирован), дата: 6 июня, 2011 - 10:48
#permalink

Это правильно, но не приемлемо для меня. Рег.выр. поступает ИЗВНЕ, и для того чтобы его изменить (разбить на составляющие по ИЛИ и в каждое поставить значки $ и ^) надо по крайней мере его распарсить.
Интересно, что в IE, если ему подсунуть XML, приблизительно такой:

value>102040</value>

и XSD схему, в которой имеется:

<xsd:element name="value">
  <xsd:simpleType>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[0-9]{5}|[0-9]{8}"/>
    </xsd:restriction>
  </xsd:simpleType>
</xsd:element>

дает результат - элемент не валидный.
такой же результат дает Altova XMLSpy.
Как они работают, непонятно.


Автор: Котоваська (не зарегистрирован), дата: 7 июня, 2011 - 05:47
#permalink

Как убрать не значищие нули в дробном числе?


Автор: kobezzza, дата: 7 июня, 2011 - 23:17
#permalink

Метод toFixed


Автор: Николай123 (не зарегистрирован), дата: 8 июля, 2011 - 16:37
#permalink

Здравствуйте. есть небольшая проблемка.
есть такая строка
h_ttp://mysite.com/cat1/cat2/
как при условии что в строке нету слова cat3 выбрать все что после h_ttp://mysite.com/


Автор: Николай123 (не зарегистрирован), дата: 8 июля, 2011 - 16:48
#permalink

и нужно сделать это только с помощью рег. выражения( сделал отдельно выбор ^h_ttp://mysite.com//(.=?.*)$
отдельно как бы условие ^((?!cat3 \.svc).)*$ при котором если есть cat3 в строке то оно выбирает только последний символ


Автор: Dil (не зарегистрирован), дата: 12 июля, 2011 - 09:38
#permalink

ЗДРАВСТВУЙТЕ ВСЕМ! ПОМОГИТЕ ПОЖАЛУЙСТА!!!

Мне нужен регекс который определяет только телефонные номера, я написал такой:

var regex = /\b\(?(\d{3,6})?\)?[. -]?(\d{2,3})[. -]?(\d{2,4})?[. -]?(\d{2,4})?\b/;

но он, помимо номеров, определяет год, цены и т.д. (вобщем почти все числа). Как быть? Нужно чтобы определял только номера!

Примеры номеров: 1111 123456, 123456, 12-34-56, 123-456, 123, 1234, (111) 123-45-67

Спасибо заранее!


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

Интересно, а чем год будет отличаться от примеров "1234", "1111", или цена та же чем отличается от "123"? Вы с критериями отбора сначала определитесь.


Автор: Денн (не зарегистрирован), дата: 21 августа, 2011 - 20:10
#permalink

Подскажите, кто может
есть скрипт, цель которого в полученной строке, например, Сайт+для+гостиничного+бизнеса заменить все плюсы на пробелы. Так вот получается заменить плюс только после первого слова. Т.е скрипт выполняется один раз. Как сделать, чтоб замена была по всей строке?

<script type="text/javascript">
 var urlpage = document.URL;
var urlik = getVarValueFromURL(urlpage, 'zakaz'); 
var decodeurlik = decodeURI(urlik)
 
re = /\+/;
str = decodeurlik;
newstr = str.replace(re, " ");

document.getElementById('tema').value = newstr;

</script>

Автор: Денн (не зарегистрирован), дата: 22 августа, 2011 - 12:38
#permalink

Решил проблему, подставив в

re = /\+/;

модификатор g, позволяющий вести поиск по всей строке, т.е получается

re = /\+/<strong>g</strong>;
str = decodeurlik;
newstr = str.replace(re, " ");
document.getElementById('tema').value = newstr;

Автор: денн (не зарегистрирован), дата: 22 августа, 2011 - 12:40
#permalink

P.S в указанной строке теги strong использовать в коде не надо


Автор: Questioner, дата: 14 сентября, 2011 - 07:54
#permalink

Как сделать так, что бы в строке все числа( /[0-9]+/gim ) не находящиеся в скобках переносились через символ "=" и + заменялся бы на -, - на +, * на /, и / на *?


Автор: Mihkach (не зарегистрирован), дата: 16 ноября, 2011 - 21:57
#permalink

В самом начале статьи нужно поменять местами примеры в этом фрагменте:

При втором вызове - т.к регулярное выражение в кавычках, то нужно дублировать \

// эквивалентны
re = new RegExp("\\w+")
re = /\w+/

Автор: mancu (не зарегистрирован), дата: 22 ноября, 2011 - 15:54
#permalink

Мой мирФотоВидеоБлог
Мирослав Воеводин на ответах Просветленный (20051)
Открыт: 27 минут назад, будет выставлен на голосование через 3 дня
JavaScript!? Регулярное выражение

пример: helloworld/something_example.ref
Как регуляркой выбрать то, что идет после символа _ и до .ref
т.е. example
я делаю

var regular = /(?<=_).+?(?=.ref)/i;

в итоге получаю invalid quantifier
, пробую динамически:

var regular = new RegExp('(?<=_).+?(?=.ref)','gi');

, результат тот же, мне кажется ему 1-ое условие не нравится, так как же все-таки правильно?


Автор: Гость, дата: 4 января, 2012 - 01:47
#permalink

Спонтанно возникла одна задачка, которую пока решить не хватает опыта, с регэкспами недавно начал знакомиться. Суть: строка состоит из значений, разделенных запятыми (как перечисление элементов массива), значения могут быть такими: [Ss] || [Ee] || [adhADH][число от 1 до 999]. Надо провести замены и получить строку с четырехзначными числами, по принципу: Ss заменяется на 4000, Ee заменяется на 9999, Aa на 3, Dd на 2, Hh на 1, все недостающие символы между [AaDdHh] и числом заменяются нулями. Собственно, в последнем и загвоздка:) Для примера, как это должно работать:
исходная строка: 's,a112,d8,h19,e,a1';
результат замен: '4000,3112,2008,1019,9999,3001'.
Заранее благодарю, если кто решит помочь:)


Автор: MitrickX, дата: 5 января, 2012 - 20:35
#permalink

Формулировка "все недостающие символы" не ясна мне. Подробнее...


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

В формулировке задачи указано, что результатом являются четырёхзначные числа, но если в 'd8' заменить d на 2, получается '28', а надо получить '2008', т.е. - все недостающие символы между буквой и числом заменяются нулями. Иначе говоря, "вес" букв: a = 3000, d = 2000, h = 1000, и к ним надо добавить числа, идущие после них.
P.S. Сделал кое-как, в принципе работает правильно но много замен:) Если предложите вариант получше, буду очень рад:) (читает значение переменной из textarea в документе и выводит уже сконвертированный результат)

function Convert() {
		var converter = document.getElementById('uncoded').value;
		function repl(regx,str) { converter = converter.replace(regx,str); }
		repl(/([^0-9][0-9]{2})(?![0-9])/gim,'0$&');
		repl(/(?:[^0-9])([1-9]{1})(?![0-9])/gim,'00$&');
		repl(/00a/gim,'a00');
		repl(/0a/gim,'a0');
		repl(/00d/gim,'d00');
		repl(/0d/gim,'d0');
		repl(/00h/gim,'h00');
		repl(/0h/gim,'h0');
		repl(/s/gim,'4000');
		repl(/e/gim,'9999');
		repl(/a/gim,'3');
		repl(/d/gim,'2');
		repl(/h/gim,'1');
		Write(converter,'fff','000');
	}

Автор: ALARMus, дата: 6 января, 2012 - 11:44
#permalink

Помогите с правильностью выражения.

Необходимо проверить правильность ввода МАС адреса, если не удовлетворяет условию, то выдать какой-то результат (например false в переменную)

т.е. 6 пар символов с ограничением: цифры от 0 до 9 или лат. буквы от A до F, разделенные двоеточием.

function isValidMacAddress(macAdd)
{
if macAdd.length = 17
{
var RegExPattern = /^([\d[A-F]{2}:){5}[\d[A-F]{2}$/;
return macAdd.test(RegExPattern)
}
else
return false;
} 
 }

1) не ошибся ли я в коде ?
2) правильно ли составлен паттерн -
а то есть вот такой вариант - не знаю чем он отличается и подходит ли
/^\s*([\d[A-F]{2}:){5}[\d[A-F]{2}\s*$/


Автор: ALARMus, дата: 6 января, 2012 - 08:23
#permalink

кстати критика\поправки статьи принимаются ?


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

Ребята, помогите - есть строка:

{"Title":"The Long Goodnight: A Film About Phil Collins","Year":"2007","Rated":"N/A","Released":"5 Sep 2007","Genre":"Documentary, Music","Director":"Anthony Mathile","Writer":"N/A","Actors":"Ronnie Caryl, Brad Cole, Phil Collins, Luis Conte","Plot":"In 2004 I came to a major decision in my life. I decided to stop my seemingly endless days of touring...","Poster":"N/A","Runtime":"1 hr 18 mins","Rating":"N/A","Votes":"N/A","ID":"tt1212426","Response":"True"}

Нужно распарсить в массив типа $str[Year] = [2007], $str[Rated] = [N/A] и т.д.


Автор: Рома878 (не зарегистрирован), дата: 20 января, 2012 - 01:04
#permalink
<head>
     <script type="text/javascript" src="jquery.js"></script>//Подключи JQuery.
</head>
var json = '{"Title":"The Long Goodnight: A Film About Phil Collins","Year":"2007","Rated":"N/A","Released":"5 Sep 2007","Genre":"Documentary, Music","Director":"Anthony Mathile","Writer":"N/A","Actors":"Ronnie Caryl, Brad Cole, Phil Collins, Luis Conte","Plot":"In 2004 I came to a major decision in my life. I decided to stop my seemingly endless days of touring...","Poster":"N/A","Runtime":"1 hr 18 mins","Rating":"N/A","Votes":"N/A","ID":"tt1212426","Response":"True"}';

var object = $.parseJSON(json);

Вот обращение к Year.
var str = object.Year

str == '2007';


Автор: CRIO (не зарегистрирован), дата: 21 января, 2012 - 00:18
#permalink
Парни помогите!
нужна замена "[b]" на "<b>"
output=input.replace(/\]/g, ">")
output=input.replace(/\[/g, "<")

получается "[/b>"

меняю местами
output=input.replace(/\[/g, "<")
output=input.replace(/\]/g, ">")

получается "</b]"
как ето исправить?

Автор: Гость (не зарегистрирован), дата: 31 января, 2012 - 17:57
#permalink

меняю местами
09 output=input.replace(/\[/g, "<")
10 output=input.replace(/\]/g, ">")
вы второй раз в исходнйо строке подменяете:
10 output=output.replace(/\]/g, ">")


Автор: alexandr_v-vich, дата: 31 января, 2012 - 16:34
#permalink

Спасибо, сложно, но информативно для первого знакомства


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

Вопрос. Символ ` учитывается в регулярных выражениях так же как буквы/цифры/etc, или же является каким-либо спецсимволом (не упомянутым здесь, как показывает поверхностное прочтение)?
Заранее спасибо.


Автор: Foxmatrix (не зарегистрирован), дата: 16 февраля, 2012 - 16:08
#permalink

Подскажите как можно сделать, у меня есть строка в которой содержится версия продукта например 4,10или например4 10 или цифры другим знаком каким нибудь разделены а мне нужно получить строку вида 4.10... Как я могу это сделать? Ну если хотябы не брать сложные варанты а только пробел, точку, запятую, слеш и все )


Автор: growler, дата: 5 августа, 2012 - 19:29
#permalink
// test array
var versions = [
        "4,10",
        "4 10",
        "4.10",
        "4-10"
    ],
    ver;

// test whole array
for (var i = 0; i < versions.length; i++) {
    // regular expr
    ver = versions[i].replace(/[^\d]/, ".");
    // debug
    console.log(ver);   // 4.10 .....
}

Автор: Sober_exe, дата: 28 февраля, 2012 - 08:50
#permalink

Ребята, нужна помощь.
в поле input вставляю строку содержащую некий перенос строки, например из этого же раздела скопировать строку кода "var myArray = myRe.exec("cdbBdbsbz");
". И в input получаются 2 строки, так вот этого не должно быть, нужно в строку.
Пишу следующее регулярное выражение:

$('input.search_fild').change(function(){
var enter = $(this).val();
var newString = enter.replace(/\r\n/, /\s/);
alert(newString);
});

т.е. меняю перенос строки на пробел. И это не срабатывает, всё равно в input 2 строки.
Для проверки делал:

$('input.search_fild').change(function(){
var enter = $(this).val();
var newString = enter.replace(/абв/, "1");
alert(newString);
});

в input писал "абв" - работает, меняется на "1".
P.s.: Кстати change отрабатывает после потери фокуса инпутом, а как на лету?


Автор: Гость (не зарегистрирован), дата: 27 апреля, 2012 - 10:35
#permalink

есть одна замечательная вещица для работы с регулярками - RegexBuddy. Под рукой, извините, нет ни ссылки, ни самой штуки. Но кому не лень, советую приглядеться. Содержит в себе подсветку регулярки, инструменты для тестов, примеры для множества языков + библиотеку самых часто используемых регулярок


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

Как удалить одинаковые символы в строке?


Автор: growler_ua (не зарегистрирован), дата: 5 августа, 2012 - 19:17
#permalink

самому стало интересно.
я так и не смог с помощью регулярки.

держи в стиле С++ =)

function foo(str) {
        var to_return = "";
        for (var i = 0; i < str.length; i++) {
            if (i + 1 < str.length && str[i] == str[i + 1]) {
                continue;
            }
            to_return += str[i];
        }
        return to_return;
    }

    var bad_str = "hellllllo froooom man     ..... 1  ",
        good_str = foo(bad_str);
    //
    console.log(good_str);  // helo from man . 1

Автор: HImIK (не зарегистрирован), дата: 26 июля, 2012 - 10:18
#permalink

Это называется "запоминающие скобки".
Это называется группы!


Автор: Гость (не зарегистрирован), дата: 20 августа, 2012 - 17:29
#permalink

Помогите разобраться
Нужно регулярное выражение, которое вырезает все скрипты из страницы
Все остальное должно оставаться нетронутым
Я написал такое, только оно вырезает все, что попадает между первым открывающимся тегом скрипт и последним закрывающимся
например:

Что-то 1
Это надо вырезать
Что-то 2
Это тоже надо вырезать
Конец

У меня получается в результате:
Что-то 1 Конец
А должно быть: Что-то 1 Что-то 2 Конец

Само выражение:

re = new RegExp("|\\stype=.text\\/javascript.>).*<\\/script>", "g");


Автор: Гость (не зарегистрирован), дата: 20 августа, 2012 - 17:33
#permalink

Помогите разобраться
Нужно регулярное выражение, которое вырезает все скрипты из страницы
Все остальное должно оставаться нетронутым
Я написал такое, только оно вырезает все, что попадает между первым открывающимся тегом скрипт и последним закрывающимся
например:

Что-то 1
<скрипт>Это надо вырезать </скрипт>
Что-то 2
<скрипт>Это тоже надо вырезать </скрипт>
Конец

У меня получается в результате:
Что-то 1 Конец
А должно быть: Что-то 1 Что-то 2 Конец

Само выражение:

re = new RegExp("|\\stype=.text\\/javascript.>).*<\\/script>", "g");

Автор: Ник (не зарегистрирован), дата: 23 августа, 2012 - 08:22
#permalink

Народ, помогите кто может. Только разбираюсь во всём, потихоньку!!!

Есть строка:

$(function() {
$("#blockz<strong>XXXX</strong>").capslide({

Которая задаёт поведение в блоках с id "blockzХХХХ", где ХХХХ - это случайные цыфры. Что нужно добавить, чтобы она выбирала все имеющиеся на странице блоки без разницы, какое цифровое id (после blockz) они имеют?

Спасибо!


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

Народ, помогите кто может.
[3, 11, 15, 16, 19, 23, 30, 39, 41, 44, 48, 56, 61]
на выходе надо
[3; 11; 15; 16; 19; 23; 30; 39; 41; 44; 48; 56; 61]


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

Народ, помогите кто может.
[3, 11, 15, 16, 19, 23, 30, 39, 41, 44, 48, 56, 61]
на выходе надо
[3; 11; 15; 16; 19; 23; 30; 39; 41; 44; 48; 56; 61]


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

ResultArray = implode(";", explode(",", SourceArray))

или для строки

ResultStr = str_replace(",", ";", SourceStr)


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

Народ, помогите кто может.
[3, 11, 15, 16, 19, 23, 30, 39, 41, 44, 48, 56, 61]
на выходе надо
[3; 11; 15; 16; 19; 23; 30; 39; 41; 44; 48; 56; 61]


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

5


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

Всем Доброго времени суток!
Народ, помогите, пожалуйста. Есть вот такой код:

Visit

Как его изменить, чтобы одиночный пробел между словами заменялся на подчёркивание (_), а двойной пробел просто сливался. Т.е вот так должно получиться: шла_маша_пошоссе.


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

Скажите пожалуйста метод "test" что возвращает в качестве результата? "True" "false"? или что то другое?


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

True / false.


Автор: kama (не зарегистрирован), дата: 30 декабря, 2012 - 10:49
#permalink

А как задавать условие как это: x(?!y), только для предшествующих символов?


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

Есть такая строка

rgb(200, 200, 200) 34px 34px 34px, rgb(50, 50, 50) 0px -5px 23px, rgb(0, 0, 0) -43px -50px 35px

Как её разбить на подстроки так, чтобы в каждой подстроке был цвет, т.е rgb(R,G,B), и координаты т.е. Xpx Ypx Zpx?

Пример:

  1. rgb(200, 200, 200) 34px 34px 34px
  2. rgb(50, 50, 50) 0px -5px 23px
  3. rgb(0, 0, 0) -43px -50px 35px

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

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

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

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


Автор: Yar (не зарегистрирован), дата: 31 января, 2013 - 02:05
#permalink

Есть строка, если совсем упрощенно, то выглядит она как "aba"
Небходимо находить в этой строке все: "ab" и "ba".
Т.к. индекс с которого начинать следующий поиск растет в данном примере будет найдено либо "ab" либо "ba", но в данном примере результатом поиска необходимо получать оба значения т.е "ab" и "ba", а не одно из них. Есть ли какое-либо изящное решение в регулярных выражениях для такого типа поиска без циклов и прочих надстроек?
Естественно пример упрощён до безобразия, в реальности строка в которой нужно искать все возможные варианты значительно больше и искомые значения значительно сложнее. Или может быть можно как-нибудь управлять lastIndex'ом (индекс, с которого начинать следующий поиск)?
P.S. я не ищу решение данного вопроса т.к. нагромоздить я умею и без чужой помощи =), я скорее ищу изящное (короткое и простое) решение или метод который мне неизвестен (если что пропустил в статье, то заранее прошу прощения).


Автор: Victoria Malaya (не зарегистрирован), дата: 14 мая, 2013 - 09:31
#permalink

Доброго времени суток!

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

Вот пример разметки:

     Scenario:  

  ABCDEFG &nbsp Scenario:

А вот то как это выглядит для пользователя:
Scenario:
ABCDEFG Scenario:

Мне приходит строка с разметкой и нужно определённым образом отформатировать строку "Scenario:", если она находится в начале строки, если же перед это строкой предшествуют какие-либо другие символы, то строка не должна быть найдена. При этом все предшествующие знаки пробелов должны быть сохранены.
В первом случае мне нужно найти строку "Scenario:", т.к. визуально она находится в начале строки перед которой предшествуют некоторое количество пробелов. Во втором же случае строка "Scenario:" не должна быть найдена, т.к. перед этой строкой предшествуют символы "ABCDEFG".

Буду очень признательна, если вы мне поможете решить эту задачку


Автор: Виктория Малая (не зарегистрирован), дата: 14 мая, 2013 - 09:37
#permalink

Доброго времени суток!

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

Вот пример разметки:
<p>     Scenario:  </p>
<p>  ABCDEFG &nbsp Scenario:</p>

А вот то как это выглядит для пользователя:

     Scenario:  

  ABCDEFG   Scenario:

Мне приходит строка с разметкой и нужно определённым образом отформатировать строку "Scenario:", если она находится в начале строки, если же перед это строкой предшествуют какие-либо другие символы, то строка не должна быть найдена. При этом все предшествующие знаки пробелов должны быть сохранены.
В первом случае мне нужно найти строку "Scenario:", т.к. визуально она находится в начале строки перед которой предшествуют некоторое количество пробелов. Во втором же случае строка "Scenario:" не должна быть найдена, т.к. перед этой строкой предшествуют символы "ABCDEFG".

Буду очень признательна, если вы мне поможете решить эту задачку


Автор: Гость (не зарегистрирован), дата: 25 мая, 2013 - 20:59
#permalink

Всем Доброго времени суток!
Народ, помогите, пожалуйста. Есть длинная строка, в ней нужно заменить все ".", ",", "\" если они следуют за алфавитом (но не за цифрами) на " "?


Автор: Semen211 (не зарегистрирован), дата: 30 мая, 2013 - 11:37
#permalink

есть строка "100 вылаождыва, +12"
вопрос
как вытащить последнии цифры.
я делаю так:

var aa = "100 вылаождыва, +12"
parseInt(aa.replace(/\D+/g,""));

что еще надо добавить?
у меня выдает оба числа 100 и 12, как вытащить только 12?


Автор: samogon13 (не зарегистрирован), дата: 13 июня, 2013 - 17:41
#permalink

Подскажите если ссылка

сайт.ру/view_main_right.php?id=3
id=номер статьи

как написать так?
сайт.ру/\S{1,}

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

Подскажите если ссылка

/view_main_right.php?id=3
id=номер статьи

как написать так?
/\S{1,}

Автор: lancer, дата: 8 июля, 2013 - 15:59
#permalink

[quote]* Обозначает повторение 0 или более раз. Например, /bo*/ найдет 'boooo' в "A ghost booooed" и 'b' в "A bird warbled", но ничего не найдет в "A goat grunted".[/quote]

Объяснено совсем непонятно на мой взгляд, повторения чего и как?. Возможно этот вопрос поможет понять.

Почему если в "A bird warbled" находиться b, то в "A goat grunted" не находиться o?


Автор: Гость (не зарегистрирован), дата: 12 сентября, 2013 - 22:59
#permalink

народ, надо подсчитать сколько символов "а" в слове "zanzara", есть вариант:

var i=0,
reg = RegExp("a", "g");
"zanzara".replace(reg, function(){ i++ });

и еще один:

Array.prototype.forEach.call("zanzara",function(ch){if(ch==="a") i++});

может кто-то знает что-ниб попроще


Автор: mobipak (не зарегистрирован), дата: 14 сентября, 2013 - 07:49
#permalink

Как-то так:

var tex = 'zanzara';

alert(tex.length - tex.replace(/a/g,'').length);

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

Строка: "M 610.5 30 L 610.5 155".

Необходимо получить число между "M" и "30", в данном случае оно "610.5". Не совсем понимаю как. Помоги плиз.


Автор: Кирилл Друцкой (не зарегистрирован), дата: 11 декабря, 2013 - 21:38
#permalink

Пытаюсь написать регулярное выражение, которое будет отбирать все файлы, не, которые не начинаются с буквы "j" и не имеют расширений EXE и DLL.

Исходя из вышеизложенного материала получилось выражение:

deposit/[^j](\w+)\.(?!mnu|pft)

Но оно не работает. Буду очень признателен за помощь.


Автор: s_drud, дата: 24 января, 2014 - 18:00
#permalink

А кто-нибудь может показать пример работающего варианта с незапоминающими скобками?
Пробовал по всякому-запоминают!Sad


Автор: Pavel54 (не зарегистрирован), дата: 18 февраля, 2014 - 17:25
#permalink

Ребята, у меня такой вопрос. Почему не работает регулярное выражение в отрицании:

var s = 'tyauir';
var r = /[^a]/.test(s);
console.log(r);

Казалось бы в строке s содержится буква a, следовательно отрицание должно давать false. Однако выходит true


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

Друзья, помогите составить выражение.
Есть строка типа:
name1#query1&name2#query2$name3#query3
нужно получить query для конкретного name
я вижу это так:
/^|\&name2\#(\w*)\&|$/i


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

name3#(\w+?)(\$|&|$)

$ - привязка к концу строки
name1-3 смотреть в первой группе


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

Здрасте !

Помогите разобраться с регулярным выражением. Есть некий скрипт в котором есть регулярное выражение, которое ищет совпадение в тексте. Когда текст представляет из себя набор строк, в каждой из которых находится одно совпадение с регулярным выражением, то всё работает как надо. Но дело в том, что теперь текст стал в одной строке и находится только одно совпадение, которое самое последнее.
$transactionPattern = "/.*"
."\s(\d\d\d)"
."\s+(\d+\.\d\d)"
."\s+(\d+\.\d\d)"
."\s+(\d+\.\d\d)"
."(\d+)"
."(\d\d\d\d\d)"
."(\d\d\d\d\d\d)"
."(201\d\d\d\d\d)\s+"
."\d+(201\d\d\d\d\d)"
.".*/";


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

Отвечаю сам себе.
Методом научного тыка удалось обнаружить, что убрав в начале и конце регулярного выражения ".*" всё заработало.
Странно всё это.


Автор: Гость (не зарегистрирован), дата: 9 сентября, 2014 - 16:58
#permalink

Может ли тут кто-нибудь ответить на вопрос : почему "xy".match(/x?/) возвращает ["x"] , а "xy".match(/y?/) возвращает не ["y"] ?


Автор: пысько (не зарегистрирован), дата: 10 июня, 2022 - 10:47
#permalink

возвращает если к проверочной фразе добавить й


Автор: Гость (не зарегистрирован), дата: 6 января, 2016 - 22:29
#permalink

Есть ли метод сделать реплейс в /g для меняющегося аргумента.
Например, пишем:

text= 'Банан';
variable_text='ан';
alert (text.replace(/ан/g,'1')

- получаем результат "Б11", но хотим делать реплейс не по 'ан', а по variable_text

alert (text.replace(variable_text/g,'1') - не работает. Как надо?


Автор: Alex_63, дата: 30 апреля, 2016 - 19:52
#permalink
alert( text.replace(new RegExp(variable_text,''),'1') )

Автор: Гость (не зарегистрирован), дата: 26 мая, 2016 - 23:17
#permalink

Помогите разобраться.
Есть функция следующего вида:

// replace a regex match with a new string in a file globally
function regexReplaceInFile(aRegex,aReplace,aFile){
txt = readFile(aFile,false);
var rx = new RegExp(aRegex, "g");
txt = txt.replace(rx,aReplace);
saveFile(aFile,txt);

Как мне ее вызвать, чтобы она что-то там на что-то меняла?
Благодарю за ранее!


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

Хотя вроде бы разобрался.


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

помогите, пож-та, составить регулярное выражение, которое выведет запросы, содержащие от 3 до 8 слов, каждое слово от 2 до 5 символов.
у меня получилось, что выводит нужное кол-во слов, но как к ним привязать кол-во символов в каждом слове не понимаю..

^\S+(\s\S+){2,7}$


Автор: Гость №1 (не зарегистрирован), дата: 16 ноября, 2016 - 01:09
#permalink

print ???

Например, вот такой скрипт:

var myRe = /ab*/g;
var str = "abbcdefabh";
while ((myArray = myRe.exec(str)) != null) {
var msg = "Found " + myArray[0] + ". ";
msg += "Next match starts at " + myRe.lastIndex;
print(msg);
}
Этот скрипт выведет следующий текст:
Found abb. Next match starts at 3
Found ab. Next match starts at 9
---------------------
Этот скрипт ничего не выведет.


Автор: Гость (не зарегистрирован), дата: 26 февраля, 2017 - 06:52
#permalink

ХЭЛП Ребят :- )
Есть такой вот таймер реагирующий на строчку if (testCliks === 1)

if (testCliks === 1){
function timer() {
var obj=document.getElementById('timer_inp');
obj.innerHTML--;
if(obj.innerHTML==0){
alert('ВРЕМЯ ВЫШЛО :- (')
location.reload();
setTimeout(function(){},1000);}
else{setTimeout(timer,1000);}
}
setTimeout(timer,1000);
}

Проблема в том, каждое нажатие на if (testCliks === 1) (это блок игрового поля, типа карточка - тыкаешь, она что-то показывает) ускоряет таймер и он отсчитывает время как бешеный.
Нужно что бы таймер включался один только раз при условии if (testCliks === 1). Ну или как угодно, лишь бы работал по человечески :- )
Проблема вроде как флагом решается, но я не соображу как его тут поставить. Помогите с проблемой люди добрые


Автор: PROPHESSOR (не зарегистрирован), дата: 10 марта, 2017 - 22:47
#permalink

Нужно регулярное выражение для того, что бы
\t\t переводилось в | -
А \t в -
(аналогично \t\t\t\t\t в | | | | -)

Ибо такой код не в тренде:

tmp = tmp.replace(/\t\t\t\t/g, '	║	║	║	║	╙');
tmp = tmp.replace(/\t\t\t\t/g, '	║	║	║	╙');
tmp = tmp.replace(/\t\t\t/g, '	║	║	╙');
tmp = tmp.replace(/(\t)+\t/g, '	║	╙');
tmp = tmp.replace(/\t/g, '	╙');

Автор: Никитос (не зарегистрирован), дата: 25 сентября, 2017 - 19:15
#permalink

Есть регулярное выражение для проверки имени пользователя /^([ЁA-ZА-Я]([ёa-zа-я])*(['-][ЁA-ZА-Я]([ёa-zа-я])*)*)$/u
Каким образом можно заставить его проверять только имена с количеством символов {3,10}


Автор: Acacia hary (не зарегистрирован), дата: 6 сентября, 2019 - 13:37
#permalink

The article you share here is great. I really like and appreciate your work. I read your article deeply, the points you mentioned in this article are very helpful thanks for sharing.
temple run


Автор: regiyef (не зарегистрирован), дата: 27 января, 2020 - 16:45
#permalink

Please continue this great work and I look forward to more of your awesome blog posts.
Chameleon care


Автор: john bond (не зарегистрирован), дата: 8 февраля, 2020 - 14:36
#permalink

Please continue this great work and I look forward to more of your awesome blog posts.

rico chandra kusuma


Автор: Mississauga Mold Removal (не зарегистрирован), дата: 15 февраля, 2020 - 12:34
#permalink

This is just the information I am finding everywhere. Thanks for your blog, I just subscribe your blog. This is a nice blog..


Автор: johnb6174 (не зарегистрирован), дата: 22 февраля, 2020 - 14:36
#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.
Atherosclerosis


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

I have read your article, it is very informative and helpful for me.I admire the valuable information you offer in your articles. Thanks for posting it..
dji mavic mini


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

Thank you so much for sharing this great blog.Very inspiring and helpful too.Hope you continue to share more of your ideas.I will definitely love to read.
hyaluronic acid injections side effects


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

Great article with excellent idea!Thank you for such a valuable article. I really appreciate for this great information..
indonesian maid agency


Автор: Ivan Makarov (не зарегистрирован), дата: 13 апреля, 2020 - 12:07
#permalink

Это хороший вопрос, как добавить эту флеш игру в javascript? Это вообще возможно?


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

// эквивалентны
re = new RegExp("\\w+")
re = /\w+/

Вроде так правильно:
re = /\\w+/


Автор: Health tips (не зарегистрирован), дата: 10 мая, 2020 - 17:44
#permalink

Great article you make here and i think you are a professional blogger....
Cyberpunk 2077


Автор: David Oath (не зарегистрирован), дата: 13 мая, 2020 - 16:24
#permalink

Great article with excellent idea! Thank you for such a valuable article.
Rainierland


Автор: Trek Dicos (не зарегистрирован), дата: 17 мая, 2020 - 18:09
#permalink

Thanks to post this kind of blog which are informative for everyone.
123movies
Kisscartoon alternatives


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

Thanks to post this kind of blog which are informative for everyone.
Watch Akame ga kill season 2
Guest posting services UK


Автор: Alex Rath (не зарегистрирован), дата: 26 мая, 2020 - 16:47
#permalink

You are special one who writes on this topic...
Putlocker 2020
123movies Unblocked Sites


Автор: Chitra Oath (не зарегистрирован), дата: 2 июня, 2020 - 17:30
#permalink

Your blog is not only informative but also very artistic.
Legend of Korra
Watch legend of Korra Online


Автор: strel9, дата: 2 июня, 2020 - 20:13
#permalink

str.replace(/ [\s\S]+/, '')
это регулярное удаляет все символы после сочетания "пробел"+"любой знак" 1 или более раз,
подскажите пожалуйста, как сделать чтобы удаляло
после сочетания "-"+"любой знак" 1 или более раз


Автор: Trek Oath (не зарегистрирован), дата: 28 июня, 2020 - 08:16
#permalink

Are you looking to watch online HOD movie just click here.
House of the Dragon Release Date
The Good Lord Bird Release Date


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

I want you to thank for your time of this wonderful read!!! I definately enjoy every little bit of it and I have you bookmarked to check out new stuff of your blog a must read blog! google adwords accaunt for sale


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

I needed to thank you for this incredible read!! I unquestionably adored each and every piece of it. I have you bookmarked your site to look at the new stuff you post. Cryochambers for horses


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

I want you to thank for your time of this wonderful read!!! I definitely enjoy every little bit of it and I have you bookmarked to check out new stuff of your blog a must read blog Marine Companies in Dubai


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

Great article with excellent idea!Thank you for such a valuable article. I really appreciate for this great information.. Custom Patches


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

This is very interesting content! It is really what I wanted to see hope in future you will continue for sharing such an excellent post. torque meter


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

Impressive web site, Distinguished feedback that I can tackle. I am moving forward and may apply to my current job as a pet sitter, which is very enjoyable, but I need to additional expand. Regards.
cuentos de ciencia ficción


Автор: Гость (не зарегистрирован), дата: 25 июля, 2020 - 14: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. keyword ideas generator


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

The first phase the preparation should, theoretically, be uninfluenced by the intended intensity and duration of the sound which is subsequently produced. In fact, however, so quickly are the three phases accomplished that the pianist rarely has capacity to think, in performance, of each phase separately. Custom Embroidered Patches


Автор: muneer ahmed (не зарегистрирован), дата: 29 июля, 2020 - 15:04
#permalink

One present why galore businesses opt for postcards is because they are overmuch cheaper to be prefab and this can forbear a lot of expenses on the lengthened run. digitizing embroidery service


Автор: Sophie Miller (не зарегистрирован), дата: 31 июля, 2020 - 18:20
#permalink

Ich danke Ihnen für die Information! Ich war auf der Suche nach und konnte nicht finden. Du hast mir geholfen! 192.168.1.254


Автор: klingeltöne kostenlos charts (не зарегистрирован), дата: 12 августа, 2020 - 10:01
#permalink

Автор: muneer ahmed (не зарегистрирован), дата: 19 августа, 2020 - 14:47
#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 voyance


Автор: Samarinda CHeat (не зарегистрирован), дата: 21 августа, 2020 - 05:20
#permalink

Samarinda Cheat Merupakan Media Berbagi Cheat Point Blank, Cheat PUBG Emulator, Cheat Crossfire, Cheat Rules of Survival dan berbagai cheat lainnya. Kami mengutamakan user experience dengan menyediakan link download se singkat-singkatnya dan terdapat full tutorial untuk kalian yang baru menggunakan cheat, langsung aja ke Samarinda Cheat jika ingin mendownload cheat game online pc.


Автор: muneer ahmed (не зарегистрирован), дата: 23 августа, 2020 - 09:02
#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 leedon green


Автор: malkova (не зарегистрирован), дата: 25 августа, 2020 - 12:11
#permalink

I have read the information you have shared with us and I found its very interesting. thank you so much for publishing this amazing blog post. 192.168.1.1


Автор: Google adwords perth (не зарегистрирован), дата: 26 августа, 2020 - 07:50
#permalink

Hi! Really like this site because all information has already given to this page regarding this website! So awsome! Great job!Google adwords perth


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

You have a great sense of writing I must say. Your post has those facts which are not accessible from anywhere else. It’s my humble request to u please keep writing such remarkable articles buy neopoints


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

i read a lot of stuff and i found that the way of writing to clearifing that exactly want to say was very good so i am impressed and ilike to come again in future..
frete mudança águas claras


Автор: osama shk (не зарегистрирован), дата: 7 сентября, 2020 - 13:02
#permalink

This is very educational content and written well for a change. It's nice to see that some people still understand how to write a quality post.!
gyűjtős nemzetközi szállítmányozás Franciaország Europa Road


Автор: john bond (не зарегистрирован), дата: 25 сентября, 2020 - 19:26
#permalink

Hi there! Nice post! Please tell us when I will see a follow up!
Mudanças cruzeiro - DF


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

This article gives the light in which we can observe the reality. This is very nice one and gives indepth information. Thanks for this nice article.
Tree Pruning


Автор: osama shk (не зарегистрирован), дата: 3 октября, 2020 - 15:31
#permalink

Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic.
Mudanças asa norte


Автор: john bond (не зарегистрирован), дата: 11 октября, 2020 - 13:52
#permalink

This was really an interesting topic and I kinda agree with what you have mentioned here!
moveis planejados brasilia


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

Very useful post. This is my first time i visit here. I found so many interesting stuff in your blog especially its discussion. Really its great article. Keep it up.
Kích thước cửa đẹp xingfa tại đây


Автор: john bond (не зарегистрирован), дата: 14 октября, 2020 - 14:28
#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.
nhôm hệ 55 là gì?


Автор: john bond (не зарегистрирован), дата: 16 октября, 2020 - 13:53
#permalink

Superbly written article, if only all bloggers offered the same content as you, the internet would be a far better place..
Xiaomi Electric Scooters


Автор: Zaida Vargas (не зарегистрирован), дата: 16 октября, 2020 - 18:05
#permalink

Thanksgiving is coming so send thanksgiving wishes to your family and friends


Автор: osama shk (не зарегистрирован), дата: 20 октября, 2020 - 12:18
#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.
ovente electric kettle


Автор: osama shk (не зарегистрирован), дата: 21 октября, 2020 - 12:50
#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?
ที่เที่ยวพังงา


Автор: osama shk (не зарегистрирован), дата: 26 октября, 2020 - 17:15
#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.
atp


Автор: osama shk (не зарегистрирован), дата: 27 октября, 2020 - 16:31
#permalink

Superbly written article, if only all bloggers offered the same content as you, the internet would be a far better place..
Lil peep


Автор: john bond (не зарегистрирован), дата: 30 октября, 2020 - 15:19
#permalink

Very good points you wrote here..Great stuff...I think you've made some truly interesting points.Keep up the good work.
MBDI Dépannage Remorquage Transport à Roubaix et ses environs


Автор: osama shk (не зарегистрирован), дата: 7 ноября, 2020 - 11:29
#permalink

Very nice article, I enjoyed reading your post, very nice share, I want to twit this to my followers. Thanks!.
Seven Cities Church VA


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

I am all that much satisfied with the substance you have specified. I needed to thank you for this extraordinary article. houston embroidery service


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

Thanks for taking the time to discuss this, I feel strongly that love and read more on this topic. If possible, such as gain knowledge, would you mind updating your blog with additional information? It is very useful for me.
for more information


Автор: osama shk (не зарегистрирован), дата: 20 ноября, 2020 - 16:04
#permalink

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..
financial coach marketing


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

Nice information, valuable and excellent design, as share good stuff with good ideas and concepts,
lots of great information and inspiration, both of which I need,
thanks to offer such a helpful information here. 먹튀검증


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

Nice information, valuable and excellent design, as share good stuff with good ideas and concepts,
lots of great information and inspiration, both of which I need,
thanks to offer such a helpful information here. 먹튀검증


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

“Very nice post. I jus stumbled upon your blog and wished to say thnat I have truly enjoyed
surfing around your blog posts. After all I will be
subscribing too your feed and I hole you write again very soon!” 대출


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

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..
تعلم اللغة الانجليزية


Автор: osama shk (не зарегистрирован), дата: 28 ноября, 2020 - 13:03
#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?
Seven Cities Church


Автор: osama shk (не зарегистрирован), дата: 7 декабря, 2020 - 14:03
#permalink

Positive site, where did u come up with the information on this posting? I'm pleased I discovered it though, ill be checking back soon to find out what additional posts you include.
vận chuyển ô tô bắc nam


Автор: muneer ahmed (не зарегистрирован), дата: 7 декабря, 2020 - 15:39
#permalink

It was a decent post to be sure. I completely delighted in understanding it in my lunch time. Will definitely come and visit this blog all the more frequently. Much obliged for sharing. Free Health Coverage


Автор: osama shk (не зарегистрирован), дата: 7 декабря, 2020 - 16:04
#permalink

Thank you for such a well written article. It’s full of insightful information and entertaining descriptions. Your point of view is the best among many.
solicitor Tbilisi


Автор: osama shk (не зарегистрирован), дата: 26 декабря, 2020 - 20:10
#permalink

I can set up my new idea from this post. It gives in depth information. Thanks for this valuable information for all,..
Click here


Автор: Гостьsd (не зарегистрирован), дата: 29 декабря, 2020 - 06:10
#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. Im glad to have found this post as its such an interesting one! I am always on the lookout for quality posts and articles so i suppose im lucky to have found this! I hope you will be adding more in the future...
Click here


Автор: osama shk (не зарегистрирован), дата: 3 января, 2021 - 01:08
#permalink

I was surfing net and fortunately came across this site and found very interesting stuff here. Its really fun to read. I enjoyed a lot. Thanks for sharing this wonderful information.
https://abonnenten24.de


Автор: osama shk (не зарегистрирован), дата: 3 января, 2021 - 17:08
#permalink

I was looking at some of your posts on this website and I conceive this web site is really instructive! Keep putting up..
Domótica


Автор: osama shk (не зарегистрирован), дата: 4 января, 2021 - 19:44
#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.
digital marketing


Автор: osama shk (не зарегистрирован), дата: 16 января, 2021 - 15:13
#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.
alquiler de carros cartagena


Автор: yapiwor335 yapiwor335 (не зарегистрирован), дата: 17 января, 2021 - 15:38
#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.
bridgend house clearance


Автор: osama shk (не зарегистрирован), дата: 17 января, 2021 - 17:44
#permalink

Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic.
hartlepool removals


Автор: osama shk (не зарегистрирован), дата: 20 января, 2021 - 12:33
#permalink

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..
Heimautomation


Автор: osama shk (не зарегистрирован), дата: 20 января, 2021 - 15:10
#permalink

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..
tree surgeon in colchester


Автор: osama shk (не зарегистрирован), дата: 23 января, 2021 - 17:05
#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.
covid holbox


Автор: osama shk (не зарегистрирован), дата: 31 января, 2021 - 19:20
#permalink

Your content is nothing short of brilliant in many ways. I think this is engaging and eye-opening material. Thank you so much for caring about your content and your readers.
best place to snorkel in cozumel


Автор: gameloop emulator (не зарегистрирован), дата: 13 февраля, 2021 - 17:52
#permalink

Автор: osama shk (не зарегистрирован), дата: 18 февраля, 2021 - 13:10
#permalink

Superbly written article, if only all bloggers offered the same content as you, the internet would be a far better place..
sikerdíjas pályázatírás Debrecen


Автор: df (не зарегистрирован), дата: 21 февраля, 2021 - 14:55
#permalink

I wanted to thank you for this great read!! I definitely enjoying every little bit of it I have you bookmarked to check out new stuff you post.
buy onlyfans subscribers


Автор: farhan (не зарегистрирован), дата: 21 февраля, 2021 - 20:16
#permalink

this is really nice to read..informative post is very good to read..thanks a lot!
best cenotes in riviera maya


Автор: Гостьsad (не зарегистрирован), дата: 21 февраля, 2021 - 20:23
#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
best cenotes in riviera maya


Автор: osama shk (не зарегистрирован), дата: 24 февраля, 2021 - 14:36
#permalink

This is just the information I am finding everywhere. Thanks for your blog, I just subscribe your blog. This is a nice blog..
rumah pintar


Автор: Ramon Akers (не зарегистрирован), дата: 1 марта, 2021 - 23:39
#permalink

Thanks for your guide. Check our guide about golf clubs from https://thegolfingpro.com/best-golf-clubs-for-mid-handicappers/


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

Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with more information? It is extremely helpful for me.
kombájn szállítás belföldön


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

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
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
Антиспам
18 + 1 =
Введите результат. Например, для 1+3, введите 4.
 
Текущий раздел
Поиск по сайту
Содержание

Учебник javascript

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

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

Интерфейсы

Все об AJAX

Оптимизация

Разное

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

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