2013-08-17 3 views
1

У меня есть строка со значением = "[1] a [2] b [3] c" в Javascript. Я хотел бы заменить его на "a b c".Javascript Regex Замените строку специальным символом

Мой вопрос: как это сделать в Javascript с помощью Regex?

Я попробовал следующее, но не повезло:

var strText = "[1] a [2] b [3] c"; 
var strTextReplaced = strText.replace(new RegExp("\[/d\] ", ""), ""); 
+0

должен быть \\ [\ d + \\] –

ответ

2

Использование регулярных выражений /\[\d+\]/g:

> var value = "[1] a [2] b [3] c"; 
> value.replace(/\[\d+\]/g, '') 
" a b c" 
  • \d вместо /d.
  • Escape [ и ].

Используйте /\[\d+\]\s*/, если вы хотите удалить лишние пробелы.

+0

Я хотел бы использовать '/ \ [\ d + \] \ s * /', чтобы удалить лишние пробелы. – Toto

+0

@ M42, я упомянул об этом. Спасибо. – falsetru

+0

rigth. Я даю вам +1. – Toto

0

Это \d вместо /d, и вам необходимо избежать специальных символов с помощью \. Кроме того, вам нужен «g» или глобальный флаг, который допускает более одной замены.

В JavaScript \ имеет особое значение. Поэтому вам тоже нужно избегать этого.

strText.replace(new RegExp("\\[\\d\\]", "g"), "") 

Из-за этого, у JavaScript есть эта сокращенная версия вышеуказанного.

strText.replace(/\[\d\]/g, "") 

Технически вам нужно только, чтобы избежать [, но не ].

strText.replace(/\[\d]/g, "")