jQuery -检查输入内容是否包含url在keyup上
jQuery - Check if input contents contains url on keyup
当用户手动输入内容、粘贴链接或两者的组合时,我试图检查输入是否包含URL。我想获取URL的内容(类似于Facebook),当第一次检测发生。
到目前为止,我有以下内容:
$('#message').keyup(function() {
var exp = /(ftp|http|https):'/'/('w+:{0,1}'w*@)?('S+)(:[0-9]+)?('/|'/(['w#!:.?+=&%@!'-'/]))?/;
if((this.value.match(exp))) {
var match = exp.exec(this.value);
alert(match[0]);
$(this).unbind();
return;
}
});
$("#message").bind('paste', function(e) { $("#message").trigger('keyup'); });
当一个链接被粘贴时,当一些东西被键入然后粘贴时,,但当一个url被手动键入时,这个行为正确。
如果我输入"http://www.stackoverflow.com",在"http://w"之后会触发匹配。
写这个行为的更聪明的方法是什么?
EDIT:刚刚想到了一些东西-针对用户键入的最后一个前后有空格的内容测试正则表达式如何?
谢谢,
在"粘贴"上获取页面是一个很好的选择,但我真的不确定您是否想在用户键入页面时获取页面。用户可以输入一个长URL,其中包含确定要呈现哪个页面的某些查询字符串参数。理想情况下,您希望用户在开始发送HTTP请求之前完成整个内容的输入,否则您将获取各种用户不想(或不需要)看到的中间页面。例如
www.facebook.com显然会获取主页,但是
www.facebook.com/britishpcrepairs将获取Facebook上特定组的页面,这可能是您的用户想要看到的。因此,获取主页并不是真正需要的,而且会造成不必要的混乱。
我认为你应该
- 粘贴后立即取页
- 在按下键记录且未发生粘贴后获取模糊页面或在按下键记录并且没有发生粘贴后,在一定的超时(例如2秒)后获取页面
相关文章:
- 如果当前url包含某些内容,请采取措施
- 如果 URL 包含使用 JavaScript 重定向的特定端口
- 如果URL包含字符串don't运行jQuery函数
- 当 URL 包含“#”时,jQuery Document 就绪失败
- Javascript - 如果 url 包含 X,请忽略脚本,否则运行脚本
- 在 JW 播放器开始之前不显示图像,如果 URL 包含字符串 base64
- j查询触发器单击如果 URL 包含参数
- 如果当前url包含,JS将用户重定向到不同的页面
- 动态链接URL包含声音管理器2要播放的wav文件的位置
- 如果URL包含“;default.aspx”;单击
- 当我的重定向URL包含唯一的用户ID时,我如何使用OneDrive Web选取器
- jquery:如果url包含字符串x,则更改特定标签的背景颜色
- 如果URL包含关键字,并且(同时)不包含其他关键字,则使用jQuery来包含HTML元素
- Javascript if语句如果url包含子字符串
- 为什么URL包含来自HTML表单的数据?
- 检查一个URL包含某个字符多少次
- 不能通过静态URL包含外部javascript文件
- 方法将外部url包含到溢出的现有页面中
- 如果URL包含给定的文本,则停止运行此Javascript代码的其余部分
- 如何正确地添加搜索查询参数,以url包含哈希在javascript