Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Замена символов, Замена символов 
V
    Опции темы
нуп
Дата 22.5.2011, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 13
Всего: 33



Есть набор символов, которые надо заменять.  Делаю так:
Код

function ConvertChars(s)
{
    var str = String(s);
    str = str.split("<").join("&lt;");
    str = str.split(">").join("&gt;");
    str = str.split("\n").join("\\n");
    return str;
}

Но таких символов будет много, и для каждого не хочется вызывать split >< Как можно сделать по другому? smile 
PM MAIL   Вверх
Stolzen
Дата 22.5.2011, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 4
Всего: 48



Вот так можно:

Код

<script>
    var a = ['>', '<', '-', '='];
    var b = ['&lt;', '&gt;', '--', '=='];
    
    var string = "asdf<sdfs=dfds>dsfsd=fsd<dfsdfs>-sdf-sdf=,,,<sdfs-df";
    
    for (var i = 0; i < a.length; ++i) {
        string = string.replace(new RegExp(a[i], "g"), b[i]);
    }
    
    alert(string);
</script>



--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
нуп
Дата 24.5.2011, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 13
Всего: 33



Может как-то можно вызвать только 1-н раз replace и передать туда параметры?  smile  
PM MAIL   Вверх
Stolzen
Дата 24.5.2011, 06:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 4
Всего: 48



Я думаю, в таком случае можно самому написать функцию, которая сама за один просмотр все заменит. 

Код

    var replace = function(string) {
        var d = {
            '>': '&lt;',
            '<': '&gt;',
            '\n': '\\n'
        };
        
        var build = [];
        
        for (var i = 0; i < string.length; ++i) {
            var ch = string[i];
            
            if (ch in d) {
                build.push(d[ch]);
            } else {
                build.push(ch);
            }
        }
        
        return build.join('');    
    };
    
    var string = "<a>\n</a>";
    alert(replace(string));


Это сообщение отредактировал(а) Stolzen - 24.5.2011, 06:53


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
нуп
Дата 24.5.2011, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 13
Всего: 33



Да наверное надо самому писать, но хотелось бы чего-то стандартного  smile 
PM MAIL   Вверх
Котокобра
Дата 24.5.2011, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 26.11.2009

Репутация: нет
Всего: 4



 smile 

Код

<script>

var str = "<adf>as2df<adsf>s1\ndaf<asd>1dsfa>dsaf";


var repStr = new Array();
repStr[60] = '&lt;'; repStr[62] = '&gt;'; repStr[10] = '\\n';
str = str.replace(/([<|>|\n])/g, function(x, y){return repStr[y.charCodeAt(0)]} );

document.body.innerHTML = str;

</script>


PM MAIL   Вверх
нуп
Дата 24.5.2011, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 13
Всего: 33



Как вариант. спс попробуем
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0451 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.