Если регулярное выражение без флага "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"]
-
"Глава 3.4.5.1" - полное совпадение с регулярным выражением /глава (\d+(\.\d)*)/i,
"3.4.5.1" - первая скобка в совпадении,
".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.
Как сделать разбивку числа на тысячные группы (по 3 цифры)?
Рецепт от Джеффри Фриддла:
Добрый день!
";
Подскажите, пожалуйста:
1. у меня есть js-файл в котором прописано значение переменной, определяющее изображение: var i_cloud_image7 = "
2. а мне нужно, что бы у меня была переменная такая: var i_cloud_image7 = "_1_sun_cl.png";
3. т.е. мне нужно только значение "название изображения" и все... как это реализовать на js?
Такая проблема.
Есть строка "(+89978)";
Как узнать есть в ней знак "+"?
.match("+"); - не работает;
.match("\+"); - не работает;
.match("/\+/"); - не работает;
как правильно?
Есть строка "(+89978)";
.match("/^[+]+\d*[.]+\d*/");
смысл строки такой - если с начала строки идет один +, а за ним любое число цифр, может среди них быть точка и потом снова цифры
В [] все спец символы являются литералами если идут в начале описания диапазона.
Привет всем!
Помогите разобраться с регулярным выражением:
Есть стока sss = "milkbox[555]";
Нужно вырезать 555 в чистом виде.
Делаю sss.match(/\[.*?\]/i);
Получается [555]
Подскажите пожалуйста, как исправить рег.выр что получилось 555
Либо:
Либо:
А можно ли передать в match() переменную?
var r='\w{4}'; var s='privet'; alert(s.match(r));не работает.И
не работает тоже.
Сам себе же и отвечаю -- обратный слэш надо экранировать
r='\\w{4}';Ну а как туда еще добавить параметр "без учета регистра - i"
alert(s.match(new RegExp(r, "i")));
Честно, для такого сайта тупо написано, все сжато и нихрена не понятно. Понятно только то что есть такая функция в JS, аналог регулярных выражений в PHP, и все. А как использовать ее никто и не понял. Можно было по подробней развить эту тему. Конечно вы авторы не я, но нафиг надо такими статьями поисковик засорять.
Отправить комментарий
Приветствуются комментарии:- Полезные.
- Дополняющие прочитанное.
- Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.Для остальных вопросов и обсуждений есть форум.