2015-08-22 4 views
0

У меня есть этот код, который получает строковое значение запроса и отображает его в h3. Я пытаюсь изменить любые %20 s в URL-адресе на пробелы. Я пробовал использовать .replace, но он не работает.Заменить текст в html?

<h3 style="text-decoration: underline;margin-left:10px;color:white;position: absolute; 
     z-index: 999;"> 
     <script> 
      function frtitlen(frtitle) { 
       frtitle = frtitle.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); 
       var regexS = "[\\?&]" + frtitle + "=([^&#]*)"; 
       var regex = new RegExp(regexS); 
       var results = regex.exec(window.location.href); 

       if (results == null) return "Untitled"; 
       else { 

        return results[1]; 
       } 
      } 
     </script> 
     <script> 
      document.write(frtitlen('frtitle')); 
     </script> 
    </h3> 
+1

использовать decodeURIComponent для декодирования экранированных символов, проще, чем пытаться использовать regexp для этого –

ответ

0

В JavaScript лучший вариант для замены несколько раз, чтобы использовать раскол и объединить функции вместе, функция сплит() разбивает строку на массив разделителем и присоединиться() функция включается массив с разделителем, Функция replace() заменяет текст только один раз во всей строке.

<script> 
    //This is the best substitute for the replace repeatedly. 
    str.split(delimiter).join(your_own_delimiter); 
    </script> 

Скажем, например, у вас есть строка, и вы хотите, чтобы заменить пространство с дефисом, то вы можете заменить все пробелы в нем, как показано ниже.

<script> 
    var your_string="This is my demo string."; 
    output_string=your_string.split(' ').join('-'); 
    console.log(output_string); //Final Output: This-is-my-demo-string. 
    </script> 
Смежные вопросы