2013-07-29 2 views
0

Я использую следующее регулярное выражение для соответствия слову «магазины 'между' / 'и' ? 'с возможной косой чертой' / 'перед' ? ', но по какой-то причине он не говорит о наличии недопустимого квантификатора. Любая идея, почему это может быть неправильно, и quatifier? Я попытался удалить '/? ', но он все еще говорит то же самое.Javascript регулярное выражение с lookahead и lookbehind ошибочно?

var n=str.match(/(?<=\/)stores\/?(?=\?)/); 

Спасибо!

+4

FYI JavaScript не поддерживает lookbehinds – HamZa

+0

о, я вижу. Любой рабочий стол применим к этой ситуации? –

ответ

1

Я думаю, что это недопустимая часть: (? < = /) - просмотр javascript - (? = Y); он не поддерживает lookbehinds, что я и предполагаю, что вы пытались использовать. Это регулярное выражение должно работать, хотя:

\/stores\/?\? 

, который соответствует:

вперед слэш,

следуют строки 'магазинов',

следуют ноль или один косую черту,

с последующим вопросительным знаком.

+0

Вещь в том, что я хочу совместить только слова магазинов (даже без потенциально присутствующих ** **), которые я не мог сделать в любом случае) Извините, я просто новичок в регулярном выражении. Какие-нибудь советы? http://regexr.com?35omo –

+0

О, я вижу ... Хм бы что-то вроде \/stores (? = \ /? \?) работало? Взгляд гарантирует, что конечные и? не совпадают, так что теперь вы остаетесь с массивом с кучей строк «/ stores» в них. В зависимости от того, что вы хотите сделать с совпадением, я думаю, вы можете использовать array.forEach (function (element, index, array) {array [index] = element.slice (1)}, чтобы избавиться от /. – xdl

+0

i см., я пытался избежать дополнительной обработки, но, видимо, у меня нет выбора, спасибо вам большое! –

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