【问题标题】:Convert semicolons (.,) into a certain link将分号(.,)转换为某个链接
【发布时间】:2020-04-26 01:03:10
【问题描述】:

将分号 (.,) 转换为特定链接,或将任何特定文本转换为特定链接。 由于我使用的是翻译器,希望你能理解我。

例如这段文字是这样的:

你好,大家好吗?

我希望通过 Javascript 或 CSS 或您可以对文本自动生成指向分号的链接。 示例外观:

Hello world,大家好吗?.

【问题讨论】:

  • 你能举个例子吗?
  • 你的英语很好,但这个问题仍然没有意义。将分号转换为链接是什么意思?顺便说一句,分号是;., 是句点后跟逗号。
  • 这个想法是转换/生成所有“。”和“,”从页面到特定链接。
  • 编辑问题并显示原始文本和所需 HTML 的示例。
  • 另外,StackOverflow 不是免费的编码服务。你应该try to solve the problem first。请更新您的问题以在minimal reproducible example 中显示您已经尝试过的内容。如需更多信息,请参阅How to Ask,并拨打tour :)

标签: javascript css hyperlink


【解决方案1】:

您可以尝试用包含您的 url 的 html <a> 标记替换逗号或句点的每个实例。 This question 解释了在网页中替换文本的良好格式,如下所示。在您的情况下,您需要使用两个命令(在定义类似于下面的函数之后)。首先是replaceTextOnPage('.', '<a>your link here</a>');,其次是replaceTextOnPage(',', '<a>your link here</a>');。因此,您可以将每个逗号 (,) 替换为一个链接,并将每个句点 (.) 替换为另一个(或相同的链接,如果您愿意)。我希望这会有所帮助!

function replaceTextOnPage(from, to){
  getAllTextNodes().forEach(function(node){
    node.nodeValue = node.nodeValue.replace(new RegExp(quote(from), 'g'), to);
  });

  function getAllTextNodes(){
    var result = [];

    (function scanSubTree(node){
      if(node.childNodes.length) 
        for(var i = 0; i < node.childNodes.length; i++) 
          scanSubTree(node.childNodes[i]);
      else if(node.nodeType == Node.TEXT_NODE) 
        result.push(node);
    })(document);

    return result;
  }

  function quote(str){
    return (str+'').replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
  }
}

【讨论】:

  • 很棒的dgui,我会试试的。
猜你喜欢
  • 2019-04-04
  • 1970-01-01
  • 2012-08-03
  • 2015-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-22
  • 2018-01-30
相关资源
最近更新 更多