Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как в регулярном выражении использовать переменную? (https://javascript.ru/forum/misc/20939-kak-v-regulyarnom-vyrazhenii-ispolzovat-peremennuyu.html)

avaVusal 23.08.2011 14:19

Как в регулярном выражении использовать переменную?
 
Здрасти, надо в регулярке использовать переменную, вот код:
function autoComplete(el) {
	var val = $(el).val().toString();
	var output = '';
    var re = '/' + val '/i';
	for (i = 0; i < data.length; i++) {
		if (data[i].fs.match(re))) {
			output += data[i].fs;
		}
	}
}

код не работает, работает только если в регулярке нет переменной, то есть если она в виде: var re = /value/;. Помогите пожалуйста

ваый 23.08.2011 14:23

var re = new RegExp(val, 'i');

B@rmaley.e><e 23.08.2011 14:26

Цитата:

Сообщение от avaVusal
работает только если в регулярке нет переменной, то есть если она в виде: var re = /value/;

Что? Хотите сказать, что так: var re = '/lalala/'; работает? Это Ваш код в случае отсутствия переменных.

avaVusal 23.08.2011 14:28

ДА )

B@rmaley.e><e 23.08.2011 14:32

var re = '/lalala/';
alert('lalala'.match(re));
И где?

avaVusal 23.08.2011 14:51

var re = /lalala/i;
alert('lalala'.match(re));
я ошибся )

monolithed 23.08.2011 14:59

Цитата:

Сообщение от avaVusal
надо в регулярке использовать переменную

.match(RegExp(переменная));

avaVusal 23.08.2011 15:07

спасибо всем, написал var re = new RegExp(val, 'i');, заработало


Часовой пояс GMT +3, время: 16:38.