javascript - Jquery - 使用 jquery 从文本中检测并获取 url

标签 javascript jquery

我有文本区域,我想检测用户何时完成打字粘贴网址。我想捕获该 url 并将其发送到 php。

我查看了谷歌的许多解决方案,但它们似乎都在链接周围添加了我不想做的 anchor 标记。

我尝试使用我在该网站的解决方案中找到的正则表达式,但它不起作用:

/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/

它的问题是,一旦我输入类似 http:// 的内容,它就会自动仅发送该字符串。

我不想编写包含有限 TLD 列表的正则表达式。我可以通过哪些方式存档?

这是代码:

$(document).ready(function() {
    $('#write-post-textarea').keyup(function() {    
        if(isUrl($(this).val())){
           //Show the url in an alert box
           alert($(this).val());
        }else{
           //do something if its not a url
        }
    });     
    function isUrl(s) {
        //var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
        return regexp.test(s);
    }    
});

最佳答案

使用 keyup 事件和键码验证来确保在开始验证之前按下 Enter 或空格按钮。

$("#write-post-textarea").keyup(function (e) {
    if (e.which == 13 || e.which == 32) { // 32 may be for space bar click
        if(isUrl($(this).val())){
          //Show the url in an alert box
          alert($(this).val());
        }else{
          //do something if its not a url
        }
     }
});

关于javascript - Jquery - 使用 jquery 从文本中检测并获取 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25101953/

相关文章:

Javascript嵌套类

javascript - smoothstate.js - 后退按钮有时不起作用?

javascript - 为什么在别处点击鼠标会触发onmousedown?

javascript - 使用 hammer.js 的最小拖动/滑动距离

javascript - Xpages:如何在没有硬编码的情况下使用客户端 JS 获取字段的句柄? [像这样]

c# - 从远程 HTML 页面调用 *.aspx 函数

javascript - jQuery - 为每个对象创建新的 div?

css - 最佳实践(jQuery、CSS): How to initialize hidden elements that will toggle visible?

jquery - 如果函数返回 jQuery AJAX 输出作为返回

javascript - 使用 JavaScript 进行基本的 HTML 布局