我有文本区域,我想检测用户何时完成打字
或粘贴
网址。我想捕获该 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/