Javascript.RU

match

Синтаксис

str.match(regexp)

Аргументы

regexp
регулярное выражение в виде объекта RegExp или строка

Описание, примеры

Если регулярное выражение без флага "g", то возвращает такое же результат, как regexp.exec(str).

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

Если совпадений нет, то метод возвращает не пустой массив, а null.

Замечания

  • Если вы хотите только проверить, совпадает ли строка с регулярным выражением - используйсте regexp.test(string).
  • Если вам нужно только первое совпадение - вам может лучше подойти regexp.exec(string)

Пример без глобального поиска

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

str = "За информацией обратитесь: Глава 3.4.5.1";
re = /глава (\d+(\.\d)*)/i
found = str.match(re)
document.write(found)

Возвратит массив из трех элементов:

["Глава 3.4.5.1", "3.4.5.1", ".1"]
  1. "Глава 3.4.5.1" - полное совпадение с регулярным выражением /глава (\d+(\.\d)*)/i,
  2. "3.4.5.1" - первая скобка в совпадении,
  3. ".1" - вторая скобка в совпадении

Пример с глобальным поиском

При глобальном поиске регультат match - просто массив всех совпадений (и null, если их нет).

str = "За информацией обратитесь: Глава 3.4.5.1, Глава 7.5";
re = /глава (\d+(\.\d)*)/ig
found = str.match(re)
alert(found)

Выведет массив из двух элементов:

[ "Глава 3.4.5.1", "Глава 7.5" ]

Скобки при таком поиске не учитываются.

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


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

Как сделать разбивку числа на тысячные группы (по 3 цифры)?


Автор: Константин Ц. (не зарегистрирован), дата: 19 октября, 2010 - 09:53
#permalink

Рецепт от Джеффри Фриддла:

'1234567890'.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,')

Автор: Black Jesus (не зарегистрирован), дата: 26 ноября, 2010 - 10:54
#permalink

Добрый день!
Подскажите, пожалуйста:
1. у меня есть js-файл в котором прописано значение переменной, определяющее изображение: var i_cloud_image7 = "";

2. а мне нужно, что бы у меня была переменная такая: var i_cloud_image7 = "_1_sun_cl.png";

3. т.е. мне нужно только значение "название изображения" и все... как это реализовать на js?


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

Ты можеш сразу после
var i_cloud_image7 = "";
дописать
i_cloud_image7 = "_1_sun_cl.png";
тем самым переопределив i_cloud_image7, либо вместо строки
var i_cloud_image7 = "";
вставить
var i_cloud_image7 = "_1_sun_cl.png";


Автор: dvryltsov (не зарегистрирован), дата: 29 марта, 2011 - 12:32
#permalink

Такая проблема.
Есть строка "(+89978)";
Как узнать есть в ней знак "+"?
.match("+"); - не работает;
.match("\+"); - не работает;
.match("/\+/"); - не работает;

как правильно?


Автор: Kaavain (не зарегистрирован), дата: 29 марта, 2011 - 15:40
#permalink

Есть строка "(+89978)";
.match("/^[+]+\d*[.]+\d*/");
смысл строки такой - если с начала строки идет один +, а за ним любое число цифр, может среди них быть точка и потом снова цифры
В [] все спец символы являются литералами если идут в начале описания диапазона.


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

не надо вводить кавычки, это же regExp, а не строка!


Автор: DaySiS, дата: 29 марта, 2011 - 22:32
#permalink

Привет всем!

Помогите разобраться с регулярным выражением:

Есть стока sss = "milkbox[555]";
Нужно вырезать 555 в чистом виде.
Делаю sss.match(/\[.*?\]/i);
Получается [555]

Подскажите пожалуйста, как исправить рег.выр что получилось 555


Автор: Sweet, дата: 30 марта, 2011 - 13:10
#permalink

Либо:

"milkbox[555]".match(/\[(.*)\]/) // ["[555]", "555"]

Либо:

// Просто ищем первые попавшиеся цифры (одну и более)
"milkbox[555]".match(/\d+/) // ["555"]

Автор: feldwebel (не зарегистрирован), дата: 24 мая, 2011 - 16:59
#permalink

А можно ли передать в match() переменную?

var r='\w{4}';
var s='privet';
alert(s.match(r));

не работает.И

alert(s.match(new RegExp(r)));

не работает тоже.


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

Сам себе же и отвечаю -- обратный слэш надо экранировать

r='\\w{4}';

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

Ну а как туда еще добавить параметр "без учета регистра - i"


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

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


Автор: Karant, дата: 1 сентября, 2012 - 08:42
#permalink

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


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

в строке есть буквы и цифры
делаю match(/\d+\.\d* умение/ig)
находит: 1.43 умение, 4.56 умение, 4.5 умение, а 0 умение не находит?
Как сделать чтоб находило все?


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

match(/\d+\.?\d* умение/ig)


Автор: mainMan (не зарегистрирован), дата: 28 марта, 2013 - 10:41
#permalink

у меня есть сайт dns-ip.ru хочу прикрутить там парсилку для ip можно ли это сделать как-то через regexp ?


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

text.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)
достаточно для "парсилки ip" в большинстве случаев


Автор: Kasumbekov Askar, дата: 22 ноября, 2015 - 09:39
#permalink

Здесь автор говорить что «var result» это массив, но как это массив у него ж нет текста, и поставил его в цикл с ".length" как ".length" может распознать сколько символов в «result» если у него нет ни каких символов

var testStr = «Вчера я открыл 5 сайтов:. ru, ru, .com, spuper-site ru и Biggsite .Ru но вообще, мне больше нравиться домен в зоне .ru»;
var regV = /\.ru/gi;
var result = testStr.match(regV);
for (var i = 0; i < result.length; i++){
document.write(result[i] + "
");
}


Автор: Кость (не зарегистрирован), дата: 1 декабря, 2015 - 05:05
#permalink

строка "text_123_"
match(/_(\d)_/) находит "_123_"
но в match(/_(\d)_/).[1] тусуется только "1"
когда делаешь match(/_(\d+)_/) тогда появляется 123
почему он находит всё но пихает только "1"
это баг или нет?


Автор: Кость (не зарегистрирован), дата: 1 декабря, 2015 - 05:16
#permalink

разобралси там было
_+(\d)+_+ так вот
надо было в скобку этот плюсик
т.е. что находит и что запихивает в результат - это 2 разные вещи
а мне регтестер какой то показал что всё ок, там всё прямо сразу
повёлся


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

Как найти сроку начиная с = и заканчивая символом &

Нахожу строку, начиная с = и заканчивая &, но = и & входят в массив полученных данных

var re1 = /=.+?&/g;
var newStr1 = string.match(re1);
alert(newStr1);

 
Поиск по сайту
Содержание

Учебник javascript

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

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

Интерфейсы

Все об AJAX

Оптимизация

Разное

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

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