javascript 将 sitename.com 替换为粘贴到文本区域时的 sitename2.com



只是想知道每当用户将其粘贴到文本区域中时,即使多行,我如何将 sitename.com 替换为 sitename2.com。

示例,用户粘贴

sitename.com/index.php?v=somecrap
sitename.com/index.php?v=somecrap2sitename.com/index.php?v=somecrap3

粘贴后替换为

sitename2.com/index.php?v=somecrap
sitename2.com/index.php?v=somecrap2
sitename2.com/index.php?v=somecrap3

让我知道javascript是否可能。

谢谢

这应该是可以通过"onchange"处理程序和正则表达式的巧妙组合来实现的。带有示例的 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/

使用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);

最新更新