Javascript 使用jQuery从输入中删除双http://
我有一个默认值为http://的文本区域。现在,当用户粘贴url时(如果他们不知道自己在做什么,就像大多数人一样),结果是这样的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://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);
}
});
});