javascript - 使用 Autolinker.js 排除特定链接

标签 javascript

我正在使用 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。我尝试使用

更改 url 选项
var options = {urls: { schemeMatches: true, wwwMatches: true, tldMatches: false }};
var linkedText = Autolinker.link(formInput, options);

但这会消除 google.comexample.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/

相关文章:

javascript - 为什么 Chrome 给我这个表格单元格的宽度为 0?

javascript - 我可以优化这些功能吗?

javascript - 修改函数,如果两个参数都为 true,则返回 true,否则返回 false

javascript - 如何让 ExtJs 应用程序看起来像 Feed 示例?

javascript - Select2 - 从 js 将其设为只读(未禁用!)