Удаление «+» из строки запроса - PullRequest
1 голос
/ 04 марта 2011

Я искал в Интернете ответ на этот вопрос. У меня есть массив строк, который выглядит примерно так:

[0] Cinnamon+Chocolate+Twists
[1] 3.25+Ounce+Croissant 

Мне нужно удалить все символы '+' из этих строк и вставить вместо них пробел. Следующий код не работает:

nameProduct[1] = nameProduct[1].replace("+"," ");

Я пробовал несколько вариантов метода .replace, но не повезло. Есть идеи?

1 Ответ

10 голосов
/ 04 марта 2011

Вы должны использовать регулярное выражение с флагом g lobal, чтобы заменить каждое вхождение символа ( да, JavaScript ведет себя странно в этом аспекте (или, скажем, неожиданно, в зависимости от того, на каком другом языке вы находитесь) ):

nameProduct[1] = nameProduct[1].replace(/\+/g," ");

Используйте цикл, чтобы сделать это для каждого элемента.

MDC - replace документация


Обновление:

Не используйте document.write для создания HTML. Ваш код требует много рефакторинга, но это за пределами этого вопроса. Данные обрабатываются правильно, но сгенерированный HTML не является:

<input type="text" size="40" name="Product1401" value="Cinnamon" chocolate="" twists="" readonly="">

Видите ли, у вас проблемы с кавычками. Другие части текста распознаются как атрибуты.

Немного улучшенная версия (только эта часть):

var nameProduct = hashes[i].split('=');
var tr = document.createElement('tr');
var td = document.createElement('td');
var input = document.createElement('input');

input.type = "text";
input.size = 40;
input.name = nameProduct[0]      
nameProduct[1] = nameProduct[1].replace(/%/g, '');
nameProduct[1] = nameProduct[1].replace(/2C/g, '');
nameProduct[1] = nameProduct[1].replace(/2F/g, '');
nameProduct[1] = nameProduct[1].replace(/28/g, '');
nameProduct[1] = nameProduct[1].replace(/29/g, '');
nameProduct[1] = nameProduct[1].replace(/\+/g, " ");

input.value = nameProduct[1];
input.readOnly = true;

td.appendChild(input);
tr.appendChild(td);
document.getElementById('gradient-style').tBodies[0].appendChild(tr);

DEMO

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...