2014-10-28 2 views
-1

Я хочу образец быть следующимРегулярное выражение/замена метод Javascript

var pattern = /[%25]+/g;//It matches against any encoded percent sign 
url = url.replace(pattern,'%');//Replace with only a percent sign 

Проблема в том, что он также recongnizes рисунок такой, как % 2, которые он не должен делать, он должен признать только % 25

Как теперь это interfers с моими закодированными космическими знаками (% 20) http://www.w3schools.com/tags/ref_urlencode.asp

У вас есть решение моей проблемы?

Заранее спасибо.

+1

Он также соответствует '2' и' 55' и '%%% 25252'. Пожалуйста, дайте еще несколько примеров того, что нужно и/или не должно совпадать. (Если вы не имеете в виду ** только ** '% 25'? Затем освободите скобки ...) – usr2564301

+0

Затем освободите скобки. Thanks =) – anders

+1

Прочтите учебное пособие по регулярному выражению. Значение скобок - одна из первых вещей, которые вы узнаете. Как вы думаете, что они должны были делать? –

ответ

0

Вам нужно всего лишь простой литерал для этого:

url = url.replace(/%25/g, '%'); 

[...] конструкция вводит класс символов, которые вы не хотите здесь.

0

Для того, чтобы избежать замены %255:

url = url.replace(/%25\b/g, '%'); 

Где \b граничная слово, которое предполагает, что не вы не цифры после %25.

+0

Не уверен, что необходимость в '\ b' ...'% 25', например, будет закодирована как '% 2525'. Глобальная замена будет заменять только один раз, не так ли? – usr2564301

+0

@Jongware: Это зависит от того, хотите ли вы его заменить или нет. Вы хотите, чтобы '% 2555' стал'% 55'? – Toto

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