我有textarea,我想检测用户何时完成TYPING
或PASTING
输入网址。我想捕获该URL并将其发送到php。
我看了很多来自google的解决方案,但是它们似乎都在我不想做的链接周围添加了一个定位标记。
我尝试使用在此网站的解决方案中找到的此正则表达式,但无法正常工作:
/(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事件与键码验证一起使用,以确保在开始验证之前按下回车键或空格键。
$("#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
}
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句