2010-11-18 7 views
1

У меня есть это выражение, чтобы проверить Wether если ключ существует в URL:Javascript регулярное выражение: значение матча в строке

new RegExp('/'+x+'/ig') 

(удален неуместное код)

Дело в том, что не работает , Я полагаю, что мне нужно использовать разделители (начало и конец) для работы, поскольку URL имеет много других вещей, но не уверен, как это сделать.

Любые мысли?

+0

Может вам привести пример URL-адреса и то, что вы хотите получить? – Keng

+0

Некоторые примеры совпадающих URL-адресов и ключей, которые вы пытаетесь сопоставить, сделают ваш вопрос более ясным. –

ответ

4

При использовании new Regex(), вы должны передать флаги в качестве второго параметра

new RegExp(x, 'ig') 

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

2

It похоже, что вы смешиваете литералы и строки регулярного выражения.

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

var myExp = new RegExp('[a-z]*') 

Это соответствует любому числу букв от A-Z, любое количество раз. Другой способ сделать то же самое было бы так:

var myExp = /[a-z]*/ 

или даже

var myExp = /[a-z*]/ig 

где ig означает «игнорировать регистр» и «глобальный».

Итак, придерживайтесь одного способа его написания. Не смешивайте струны и литералы.

Edit:

Если вы хотите использовать первый синтаксис, но и игнорировать дело и сделать матч глобальным, передать строку 'ig' в качестве второго аргумента в RegExp-конструктор (new RegExp('[a-z]*', 'ig'))

Смежные вопросы