2016-05-20 2 views
0

Я пытаюсь создать своего рода систему «найти и заменить», чтобы мои пользователи вставляли свой текущий html и заменяли другие URL-адреса другого сайта. В принципе, мне нужен файл files.enjin.com/(6 digit unique), который нужно заменить advena.io/. Это то, что я уже (я использую изображение случайного в качестве временного примера):Javascript - Замена нескольких строк в текстовом поле

<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.

Заранее благодарю всех, кто может помочь.

Редактировать: Мне нужен этот скрипт, чтобы иметь возможность изменять несколько вхождений указанного сопоставления.

+0

ли вы дайте мне знать, один или два примера до и после строки ... –

+0

Пример 1 (до): Http: //files.enjin. ком/435613/slider_images/slide1_1920x200.png Пример 1 (после): https://advena.io/slider_images/slide1_1920x200.png Пример 2 (до): http://files.enjin.com/759712/ examplefile/example.html Пример 2 (после): https://advena.io/examplefile/example.html – Bradley

ответ

0

Я сам это понял. Для тех, кто заинтересован в ответ, вот мое решение:

<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> 
+0

Не могли бы вы немного объяснить свое регулярное выражение -> новый RegExp ('\\ b' + key + ' \\ b ',' g ') –