Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.07.2009, 22:53
Интересующийся
Отправить личное сообщение для FiMko Посмотреть профиль Найти все сообщения от FiMko
 
Регистрация: 24.06.2009
Сообщений: 14

Глобальный поиск в регулярных выражениях
Ребята, привет всем!

Никак не могу догадаться, что делаю не так. Есть код, указанный ниже и входные данные : "qwe\nqwe". В результате выполнения кода получаю только один "qwe". Почему? Ведь я использую глобальный поиск по образцу. Подскажите, пожалуйста.

<script type="text/javascript">
function cleanLog() {
	$('res').update(""); // clear previous data
	regExps = new Array (
		"qwe",
		"abc"
	);
	
	log = $('log').value; // элемент содержит "qwe\nqwe"
	arr = new Array();
	for(var i = 0; i < regExps.length; ++i) {
		res = new RegExp(regExps[i],"gim").exec(log);
		if (res != null)
			arr = arr.concat(res);
	}
	for(var i = 0; i < arr.length; ++i) {
		$('res').insert(arr[i] + "<br>"); // в res только один "qwe"
	}
}
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 24.07.2009, 05:58
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

"abc" замени на "nqwe"
Ответить с цитированием
  #3 (permalink)  
Старый 24.07.2009, 09:48
Интересующийся
Отправить личное сообщение для FiMko Посмотреть профиль Найти все сообщения от FiMko
 
Регистрация: 24.06.2009
Сообщений: 14

Сообщение от Riim
"abc" замени на "nqwe"
причем тут это?

Вот это
regExps = new Array (
        "qwe",
        "abc"
    );

есть набор регулярных выражений. "qwe\nqwe" - есть входная строка, где "\n" подразумевает переход строки...

Помогло, кстати, вот так:
arr = log.match(new RegExp(regexp, "ig"));

С приведенным выше вариантом так пока и не понятно почему не работает.
Ответить с цитированием
  #4 (permalink)  
Старый 24.07.2009, 10:18
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://javascript.ru/RegExp/exec
Ответить с цитированием
  #5 (permalink)  
Старый 24.07.2009, 10:21
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от FiMko
причем тут это?
Я думал вы хотите "nqwe" найти.


+--------+------------+---------+-------------------------------------------------
| чей    | возвращает | имя     | описание
| метод  |            |         |
|        |            |         |
|        |            |         |
+--------+------------+---------+-------------------------------------------------
| RegExp | Boolean    | test    | false || true, вместо String.prototype.include()
| String | Integer    | search  | -1 || позиция первого совпадения, вместо String.prototype.indexOf()
| RegExp | Array      | exec    | null || ['совпадение1', 'скобка1', 'скобка2', 'скобка3', ...] : alert( /(\d+).(\d+).(\d+)/.exec('Я родился 15.09.1980') );
| String | Array      | match   | null || IF global THEN ['совпадение1', 'совпадение2', 'совпадение3', ...] ELSE как exec : ['совпадение1', 'скобка1', 'скобка2', 'скобка3', ...]
| String | Array      | split   | [all] || разделение    ( auto global )
| String | String     | replace | без замены || замена
+--------+------------+---------+-------------------------------------------------


Судя по моей чудо-табличке вам нужен match с global .

Последний раз редактировалось Riim, 24.07.2009 в 10:28.
Ответить с цитированием
  #6 (permalink)  
Старый 24.07.2009, 12:04
Интересующийся
Отправить личное сообщение для FiMko Посмотреть профиль Найти все сообщения от FiMko
 
Регистрация: 24.06.2009
Сообщений: 14

Kolyaj, Riim, спасибо за помощь!
Riim, да, табличка действительно неплохая, позаимствовал
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экранирование квадратных скобок в регулярных выражениях Holod Я не знаю javascript 3 27.05.2009 22:52
Поиск в массиве через JavaScript Noran Общие вопросы Javascript 0 10.08.2008 17:31