您好我想捕获一些输入并进行测试以查看它是否是一个网址,以便缩短它或者丢弃类似于twitter的字符数。 我有一个函数已经设置了粘贴事件的字符数,但我现在不知道如何抓取粘贴的内容
var urlexp = new RegExp( '/(\b(https?):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig' );
var message = $("#post-msg").text();
var twstartchars = 140 - message.length;
var fbstartchars = 420 - message.length;
$("#post-msg").bind("input paste", function (e) {
var a=$("#post-msg").val().length;
var post = $("post-msg").val();
if ( urlexp.test(post) ){
$('.shortenlinks').show();
}
$("#fb-char").text((420-a));
$("#tw-char").text((140-a));
if ( a > 120 ){
$("#tw-char").css('color','red');
if ( a > 380 ){
$("#fb-char").css('color','red');
}
}else{
$("#fb-char").css('color','#333');
$("#tw-char").css('color','#333');
}
});
答案 0 :(得分:0)
您好需要先调试代码:)
您的网址正常表示不适用于我。通过添加
自己尝试一下alert(urlexp.test("http://google.com"));
某处。为我返回false,所以我用另一个随机URL regex替换它:
urlexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/g
这个适合我。
第二点是选择器中缺少#hash符号:
var post = $("post-msg").val();
应该是
var post = $("#post-msg").val();
要抓取粘贴的内容,只需阅读#post-msg值即可。将URL正则表达式应用于字符串并从中提取URL:
$(".shortenlinks").innerHtml(""); // clear links
while(var match = urlexp.exec($("#post-msg").val())) {
$(".shortenlinks").append(match[0] + "<br />"); // add each link
}