2011-10-25 69 views
2

我目前正在研究一个项目,我们要限制用户可以输入的字符数量。 到目前为止,这是工作,JavaScript用于前端检测,并在后端字符串缩短为什么用户禁用js。在javascript中检测链接

唯一的问题是链接,我们不希望将链接计为字符,因为它们会被缩短。 现在我正在寻找一种快速检测链接的方法,找到该链接的长度并忽略它。

它的JS很简单:

var currentLength = $(parent).find('textarea').val().length; 
var remaining = max - currentLength; 

if(remaining <= 0) { 
    $(parent).find('textarea').val($(parent).find('textarea').val().substr(0, max)); 
    remaining = 0; 
} 

任何人都可以点我在正确的方向上如何做到这一点? 也许正则表达式的东西?

+0

尽管答案http://stackoverflow.com/questions/1500260/detect-urls-in-text-with-javascript – vzwick

+0

的可能的复制已被除外:你是什么在后端用于识别缩短时的链接?最有可能的是它也是一个正则表达式,并且很可能应该可以使用相同的正则表达式(可能针对语法差异进行调整),这会更可靠。 – RoToRa

+0

是的,我在后端也使用正则表达式,但由于缺乏对它的了解,我无法将它移植到JS。 –

回答

1
var urlRegex = /(https?:\/\/[^\s]+)/g; 
return text.replace(urlRegex, ''); 

Detect URLs in text with JavaScript

+0

谢谢,我完全忽略了一个,现在这个正则表达式只在它们前面检测到与http的链接。 由于我真的与正则表达式不好,我怎么也能够检测到在它前面的www链接?甚至只是google.com? –

+0

看看[regexlib](http://regexlib.com/Search.aspx?k=URL&AspxAutoDetectCookieSupport=1),你会发现更多的正则表达式比你想知道的...(我讨厌正则表达式;) – PiTheNumber

+0

Brrrr,那个网站吓到我了...... 谢谢:) –