Long story short, I have a website made under Wix.com editor, and coding was made possible a few months ago. I have set up a custom comment box, so users can post their comments, and read others'.
现在的问题是,"评论输入"采取纯文本,每当一个链接被张贴,它显示为纯文本,没有颜色,没有点击。
我想要一个代码,"阅读"的评论列表,并转换每一个文本,开始与"https"或"http"或"www"...橙色和可点击(打开在一个新的标签页)
有什么办法吗?
谢谢!
我已经尝试了许多事情,如:
$w('#text95').html =
(/((http:|https:)[^\s]+[\w])/g, '<a href="$1" target="_blank">$1</a>').replace;
text95 =显示的注解(它是一个文本,重复显示所有注解)
7条答案
按热度按时间icnyk63a1#
看起来您的替换语法有错误。请尝试类似的操作。我很肯定这会起作用。
调用它:
mo49yndu2#
这里是我的答案(包括视频链接的改进版本).
另请参见此Codepen here。
这将把纯文本中冗长笨拙的链接替换为文本中可点击的短链接。(同时还将视频 Package 在响应性iframe中)
示例:
变成:
链接的文本显示如下:
This clumsy link stackoverflow.com is very clumsy and this developer.mozilla.org is not much better. This one apple.com is nice but www can be removed.
neskvpey3#
我不确定
$w
是什么,或者你是否真的可以像那样分配html,但我猜这是jquery,因为$
最常引用jquery对象。你差点就成功了,那就...
$('#text95').html($('#text95').html().replace(/((http:|https:)[^\s]+[\w])/g, '<a href="$1" target="_blank">$1</a>'));
试试看。
0h4hbjxa4#
我真的很喜欢@philipeachille的解决方案。它很轻量级,而且做了很多基本的事情。但是,它有几个问题需要解决:
www
或http
开始,例如microsoft.com
我从他的代码中派生出了以下代码,修复了这些问题,并省略了我不想要的视频嵌入内容:
要解释主正则表达式:
(?<=\s|^)
查看链接的后面(前面)以确定链接的起始位置,可以是任何空白字符或字符串的开头[a-zA-Z-:/]+\.[a-zA-Z]
匹配链接的开头-类似于xxx. x甚至xxx://xxx. x的模式[a-zA-Z-:/]+
一个或多个字母、连字符、冒号或斜线的组合\.
后面紧跟一个点[a-zA-Z]
后跟另一个字母.+?
与链路的其余部分匹配。(?=[.,;:?!-]?(?:\s|$))
向前(向后)查看链路以确定链路的结束位置?=
正前瞻(?:\s|$)
链接以任何空格或字符串结尾结束[.,;:?!-]?
,除非空格或字符串结尾前面紧跟这七个标点符号之一,在这种情况下,此标点符号将结束链接。如果你想尝试一些不同的文本块,看看它们是如何被链接的,这里有一个片段:
x一个一个一个一个x一个一个二个x
根据@newbie.user88关于XSS漏洞的评论,我认为通过尝试用每个潜在的URL构造一个URL对象来验证它是明智的。
72qzrwbm5#
我纠正错误philipeachille的代码,因为youtubeID参数是不正确的。我也纠正直接youtube链接。
用法:
wgmfuz8q6#
如果字符串包含URL的任何地方,转换该字符串为链接。我尝试以上代码,但这对我来说是不正常的工作。添加了一些条件后,它的工作。谢谢你帮我@user9590073
然后我把我的文本传递到ConverLink Func中,打开带有可点击URL的模态。
7tofc5zh7#
这里有一个版本(只适用于http/s和ftp链接),如果它看起来已经在一个链接中(或者更确切地说,前面有一个“或”),它不会用链接替换url
这里有一个小测试器,显示它处理什么样的事情: