2013-03-27 4 views
2

Мне нужно заменить все одиночные символы, кроме первого. Потому что я работаю с сервером, который я запрограммировал на Python. Информация, которую я прохожу всегда по адресу. Адрес страницы:Как заменить все одиночные символы, кроме первого

http://localhost:8100/index2?decode=demo_title=Demo+title&proc1_script=script.sh+parameters&inputp3_id=pepepe&outputp2_value=&demo_input_description=hola+mundo&outputp4_visible=on&inputdata1_max_pixels=1024000&inputdata1_image_depth=1x8i&tag=&outputp1_id=nanana&proc1_src_compresion=zip&outputp3_description=&inputp1_type=text&inputdata1_description=input+data+description&inputp2_description=bien%3F&inputp3_description=funciona&outputp3_type=header&outputp2_visible=on&outputp3_visible=on&outputp1_type=header&outputp3_value=&demo_params_description=va+bien&demo_result_description=win%3F&outputp1_description=&inputdata1_type=image2d&inputp1_value=si&proc1_chk_script=off&outputp4_info=&outputp2_id=nanfdsvfa&inputp1_description=funciona&demo_wait_description=boh&outputp4_description=&inputp2_id=papapa&inputdata1_id=id_lsd&inputp1_visible=on&proc1_chk_cmake=off&proc1_cmake=-D+CMAKE_BUILD_TYPE%3Astring%3DRelease+&inputp3_visible=+off&outputp1_visible=on&outputp1_value=&outputp4_value=&inputp2_visible=on&proc1_source=lsd-1.5.zip&inputp3_value=si&proc1_make=-j4+-C+&images_config_file=cfgmydemo.cfg&outputp2_type=header&proc1_subdir=xxx-1.5&proc1_chk_make=on&inputp1_id=popopo&proc1_url=http%3A%2F%2Fwww.ipol.im%2Fpub%2Falgo%2F...&inputp2_value=no&demo_data_filename=data_saved.cfg&inputdata1_info=info_lsd&outputp3_info=&inputdata1_image_format=.pgm&inputdata1_compress=False&outputp1_info=&outputp3_id=nananartrtrt&inputp2_type=integer&proc1_id=lsd&inputp3_type=float&outputp2_description=&outputp4_type=header&outputp2_info=&outputp4_id=nana&tag=&inputp4_id=popopo&inputp4_type=text&inputp4_description=cddc&inputp4_value=sdlk&inputp4_info=dsl 

Теперь у меня есть эта проблема, что первый символ имеет важное значение в URL и не должны заменить.

Это мой сценарий для замены всех символов в Javascript:

var $fm = $("#formparam"); 
       $.get($fm.attr('${nextstep}')) 
        .done(function(data, ok){ 
        var fr=$fm.serialize(); 
        fr=fr.replace(/\&/g,"+%23+"); 
        fr=fr.replace(/\=/g,"%24+"); 
        alert('call done: ' +fr); 
        // data is the content of the response 
        document.location.href+="index2?"+fr}) 
        .fail(function(data){ 
        alert('call failed'); 
        // call failed for some reason -- add error messaging? 
        }); 

И Как изменить сценарий не заменить первые =?

Update:

Я хочу изменить все одиночные caracters = а не первый.

Пример

Перед

some=string=here=more_people 

После

some=string_here_more_people 
+0

Напишите свою собственную функцию замены. Думаю, это не сложно. – haitaka

+0

@haitaka Если вы считаете, что вопрос этого ответа не сложно ... Почему я пишу этот вопрос? –

+0

debes usar «почему» en vez de «потому что»;) –

ответ

3

Я думаю, что это следует сделать трюк:

function replacew(str,pattern,value){ 
    int index=str.search(pattern); 
    return str.substr(0,index+1)+str.substr(index+1).replace(pattern,value); 
} 
+0

Узор и ценность? Pattern = "=" и значение? Я не понял –

+1

pattern - строка, которую вы ищете, а значение - это строка, которая заменяет шаблон. Например, fr.заменить (/ \ &/г, "+% 23+"); в вашем коде, шаблон равен/\ &/g, а значение равно +% 23 + – haitaka

+0

Извините, но ваше вино этот вопрос –

2

http://jsfiddle.net/EarUc/5/

Начните с некоторой строки (empieza кон Alguna string)

var str1 = "=moo=kie="; 

Вызов функции: (llame ла несильно)

alert(replaceButFirst(str1, "=")); 

Включите следующий код для использования: (incluya эль Codigo Siguiente пункт usarlo)

function replaceButFirst(strOriginal, strToReplace){ 

var n=strOriginal.indexOf(strToReplace); 
var firstPart = strOriginal.substring(0, n + 1); 
    var tempString = strOriginal.substring(n + 1); 
tempString = tempString.replaceAll(strToReplace, ""); 

return firstPart + tempString; 

} 

Оригинальное использование функции можно найти here

String.prototype.replaceAll = function(str1, str2, ignore) 
{ 
    return this.replace(new RegExp(str1.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g,"\\$&"),(ignore?"gi":"g")),(typeof(str2)=="string")?str2.replace(/\$/g,"$$$$"):str2); 
} 
+1

@Mirko Я исправил его для работы с несколькими символами. –

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