2015-05-19 4 views
-5

Это код, который я пытаюсь выполнитьEscape «+» в JavaScript регулярных выражений

input.replace(/^.+?(?=\+)/, ''), "i") 

У меня есть побег плюс с \+, но я получаю ошибку

Uncaught SyntaxError: Invalid regular expression: /+/: Nothing to repeat 

Пожалуйста, дайте мне знать, как escape + в приведенном выше регулярном выражении.

+0

Вы уверены, что это ваше текущее регулярное выражение? [regex101 кажется, что все в порядке] (https://regex101.com/r/xZ3bZ1/1). –

+0

Я не эксперт по javascript, но я думаю, вам нужно поместить ваше регулярное выражение в кавычки на основе http://www.w3schools.com/jsref/jsref_replace.asp – childofsoong

+1

Это не может быть реальный код, ваши круглые скобки не имеют смысла. (И как только это исправлено, код не вызывает никаких ошибок.) – CBroe

ответ

1

вам нужно поместить модификатор i в конец регулярного выражения, а не как отдельный параметр. Например:

input.replace(/^.+?(?=\+)/i, ''); 

Как @LorenzMeyer указал, вы на самом деле не нужен модификатор я, потому что дело не имеет никакого значения на основе ваших регулярных выражений. Возможно, вам нужна глобальная замена? В этом случае ваша замена будет выглядеть так:

input.replace(/^.+?(?=\+)/g, ''); 
+2

'i' не требуется. Я не вижу здесь ничего чувствительного к регистру. –

+0

@LorenzMeyer Это правда. – Donal

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