Javascript 使用jQuery从输入中删除双http://

Javascript 使用jQuery从输入中删除双http://,javascript,jquery,duplicate-removal,Javascript,Jquery,Duplicate Removal,我有一个默认值为http://的文本区域。现在,当用户粘贴url时(如果他们不知道自己在做什么,就像大多数人一样),结果是这样的http://http://www.google.com。我看到一个网站,只要你有http://http://它通过JavaScript删除一个 我不熟悉JavaScript,有人能帮我吗 我不想只在焦点上清除字段。保持简单并使用以下功能: var url = "http://http://google.com"; url = url.replace("http://h

我有一个默认值为http://的文本区域。现在,当用户粘贴url时(如果他们不知道自己在做什么,就像大多数人一样),结果是这样的
http://http://www.google.com
。我看到一个网站,只要你有
http://http://
它通过JavaScript删除一个

我不熟悉JavaScript,有人能帮我吗


我不想只在焦点上清除字段。

保持简单并使用以下功能:

var url = "http://http://google.com";
url = url.replace("http://http://","http://");
。。。这将基本上替换第一个字符串
”http://http://“
第二次,”
http://“

当字段内容更改时,需要调用此函数。例如,使用jQuery:

$("#myfield").change(function(e){
  $(this).val($(this).val().replace("http://http://","http://"));
});
没有jQuery(对此不是100%确定):


不相关但值得一提的是:这不是AJAX,而是简单的javascript。Ajax是一个术语,当您试图使用XMLHTTP对象与服务器进行异步通信时使用

Ajax(异步的缩写) JavaScript和XML)是一组 相互关联的web开发 在客户端使用的技术 创建交互式web应用程序。 使用Ajax,web应用程序可以 从服务器检索数据 在后台异步 不干扰显示器 和现有页面的行为


()

拥有一个无正则表达式选项总是很好(节省了宝贵的微秒!):


您不需要ajax来实现这一点,只需要简单的javascript就可以实现

jQuery(document).ready(function(){

    jQuery('#idofurtextfield').blur(function(){

        jQuery(this).val(jQuery(this).val().replace(/(http:\/\/)\1/, '$1'));

    });

});

根本没有Ajax来实现这种魔力

这可以做到:

$(function(){
  $('textarea').bind('keydown', function(e){
    var $this = $(this);
     if(e.which === 86 && e.ctrlKey){
       setTimeout(function(){
          $this.val($this.val().replace(/http:\/\/http:\/\//,"http://"));
       }, 1);
     }
  });
});​
如果已经存在,这将替换
ctrl+v
上的
http://
。 如果用户使用
要粘贴的上下文菜单。

Ajax是一个完全不同的故事。这是“只是”JavaScript。我已经相应地重新表述了您的问题。我编辑了我的答案,以包含有关何时调用该函数的更多信息。我添加了一个捕获ctrl+v粘贴的答案。我只想添加我对您实际执行此操作的赞赏。。。很多网站都不在乎这样的问题会给用户带来不便这里的问题是,什么时候叫它?@jandy:我不是从这个问题上得到的,但是这里有一个editaha,很酷!这在IE中有效吗?不确定e.ctrlKeye.ctrlKey是否应该通过jQuery进行规范化,所以是的。应该是交叉划船。
jQuery(document).ready(function(){

    jQuery('#idofurtextfield').blur(function(){

        jQuery(this).val(jQuery(this).val().replace(/(http:\/\/)\1/, '$1'));

    });

});
$(function(){
  $('textarea').bind('keydown', function(e){
    var $this = $(this);
     if(e.which === 86 && e.ctrlKey){
       setTimeout(function(){
          $this.val($this.val().replace(/http:\/\/http:\/\//,"http://"));
       }, 1);
     }
  });
});​