2012-06-08 75 views
0

只是想知道如何將sitename.com替換爲sitename2.com,只要用戶將其粘貼到textarea中,即使在多行上。javascript將sitename.com替換爲sitename2.com粘貼到textarea時

實施例中,用戶糊劑
sitename.com/index.php?v=somecrap
sitename.com/index.php?v=somecrap2
sitename.com/index.php?v=somecrap3

在粘貼替換
sitename2.com/index.php?v=somecrap
sitename2.com/index.php?v=somecrap2
sitename2.com/index.php?v=somecrap3

讓我知道它是否可能與JavaScript。

由於

回答

0

如何使用paste事件?

但是在粘貼完成之前它確實會觸發,要編輯粘貼的內容,我需要setTimeout等待它完成。

JSFiddle

var pasted = document.getElementById("pasted"), 
    replace = function() { 
     pasted.value = pasted.value.replace(/sitename\.com/g, "sitename2.com"); 
    }; 
pasted.addEventListener("paste", function() { 
    // Wait to the pasting completed 
    setTimeout(replace, 0); 
}, false); 
+0

真棒作品非常感謝您的幫助 – Dave

+0

...但不是跨瀏覽器的安全。你應該混合兩種解決方案。 – Bergi

+0

http://www.quirksmode.org/dom/events/cutcopypaste.html哦,我忘了關心歌劇和老年人IE瀏覽器.. – nonowarn

1

應該有可能具有「平變化」處理機的巧妙組合和正則表達式。 jQuery的片段用一個例子:

function replacer() { 
    var txt = $(this).val(); 
    txt = txt.replace (/sitename\.com/g, 'sitename2\.com'); 
    $(this).val (txt);  
} 

$('textarea').mouseup (replacer).keyup (replacer);​ 

這裏:http://jsfiddle.net/u97WD/4/

+0

哇,這是快:)但是當您粘貼多行不全部更換? – Dave

+0

嗯,爲我工作 – wroniasty