簡體   English   中英

Javascript-替換文本框中的多個字符串

[英]Javascript - Replacing multiple strings in a text box

我正在嘗試為我的用戶創建一種“查找和替換”系統,以粘貼其當前的html並將另一個網站的網址替換為另一個網址。 基本上,我需要用advena.io/替換files.enjin.com/(6位唯一代碼)。 這是我已經擁有的(我使用隨機圖像作為臨時示例):

<button id="replace">Replace</button>
<p>
  Original Text:
  <textarea id="input">http://files.enjin.com/435613/slider_images/slide1_1920x200.png</textarea>
</p>
<p>
  New Text:
  <textarea id="output"></textarea>
</p>

<script>
var mapping = {};

mapping['http://files.enjin.com/' + /(......)/i'] = 'https://advena.io/<?php echo $domain1 ?>/';

document.getElementById('replace').addEventListener('click', function(evt) {

  var newString = (function(map, oldString) {
    Object.keys(map).forEach(function(key) {
      oldString = oldString.replace(new RegExp('\\b' + key + '\\b', 'g'), map[key]);
    });
    return oldString;
  }(mapping, document.getElementById('input').value));

output.value = newString;

});

</script>

我知道問題出在我要在第一個映射中使用的表達式。 我不知道還有什么用。 我不太喜歡Javascript。

預先感謝任何可以提供幫助的人。

編輯:我需要此腳本能夠更改指定映射的多次出現。

我自己弄清楚了。 對於有興趣的人,這是我的解決方案:

<button id="replace">Replace</button>
<input type="text" id="enjid" placeholder="ie. 435613">
<p>
  Original Text:
  <textarea id="input">http://files.enjin.com/435613/slider_images/slide1_1920x200.png</textarea>
</p>
<p>
  New Text:
  <textarea id="output"></textarea>
</p>

<script>

document.getElementById('replace').addEventListener('click', function(evt) {

var mapping = {};

   var id = document.getElementById("enjid").value;

   mapping['http://files.enjin.com/' + id + '/'] = 'https://advena.io/<?php echo $domain1 ?>/';
   mapping['PHP'] = 'Personal Home Page';
   mapping['JS'] = 'JavaScript';

  var newString = (function(map, oldString) {
    Object.keys(map).forEach(function(key) {
      oldString = oldString.replace(new RegExp('\\b' + key + '\\b', 'g'), map[key]);
    });
    return oldString;
  }(mapping, document.getElementById('input').value));

output.value = newString;

});

</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM