我正在使用 Autolinker.js链接从表单输入的文本,但我想将 example.com
排除在链接之外。
var formInput = "Don't link example.com but link google.com and www.kbb.com please";
var linkedText = Autolinker.link(formInput);
自然会生成具有两个 url 链接的 linkedText
。我尝试使用
var options = {urls: { schemeMatches: true, wwwMatches: true, tldMatches: false }};
var linkedText = Autolinker.link(formInput, options);
但这会消除 google.com
和 example.com
上的链接,同时保留 www.kbb.com
链接。
基本上我只是想排除一个特定的 url,即 example.com
,不被链接。
最佳答案
抱歉我才注意到这个话题。我是图书馆的作者。我知道现在已经很晚了,但将此回复留给遇到它的其他人。
从自动链接中排除特定 url 的最简单方法是利用 replaceFn
选项。例如:
var formInput = "Don't link example.com but link google.com and www.kbb.com please";
var linkedText = Autolinker.link( formInput, {
replaceFn: function( match ) {
if( match.getType() === 'url' ) {
var url = match.getUrl();
if( url.indexOf( 'example.com' ) !== -1 ) {
return false; // don't autolink matches for example.com
}
}
return true; // autolink everything else as usual
}
} );
这会产生以下结果:
Don't link example.com but link <a href="http://google.com" target="_blank" rel="noopener noreferrer">google.com</a> and <a href="http://www.kbb.com" target="_blank" rel="noopener noreferrer">kbb.com</a> please
这里有一些关于可以在 UrlMatch
对象上调用的方法的文档:http://greg-jacobs.com/Autolinker.js/api/#!/api/Autolinker.match.Url
还有一个更深入的使用 replaceFn
的例子:https://github.com/gregjacobs/Autolinker.js#custom-replacement-function
关于javascript - 使用 Autolinker.js 排除特定链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35135480/