【问题标题】:Replacing all english quotes with german quotes用德语引号替换所有英语引号
【发布时间】:2021-02-25 11:47:09
【问题描述】:

我在这里问,是否有人可以帮助我进行引号和语法检查。 我知道solution 1 的问题,但我不完全理解该解决方案。

这里有一个例子,完全集成到一个网站中,谦虚地问一下,是否有人能找到错误?

function rewriteQuotes(){
  var all_p = document.querySelectorAll(`.content_container`);
  var regex_s = /[\s\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\-.\/:;<=>?@\[\]^_`{|}~]/;
  for (var i = 0; i < all_p.length; i++) {
    if (all_p[i] != null) {
      var all_nodes = all_p[i].querySelectorAll("*");
      for (var k = 0; k < all_nodes.length; k++) {
        if (all_nodes[k].childNodes.length > 0) {
          var all_children = all_nodes[k].childNodes;
          for (var t = 0; t < all_children.length; t++) {
            if (all_children[t].nodeName == "#text") {
              all_children[t].textContent = all_children[t].textContent.replace(/"/g,"\“");
              all_children[t].textContent = all_children[t].textContent.replace(/\s\“/g,"\ „");
              if (all_children[t].textContent.charAt(0)== "\“") {
                if (all_children[t].textContent.charAt(1) === "") {
                } else {
                  var char_1 = all_children[t].textContent.charAt(1);
                  if (regex_s.test(char_1)) {
                  } else {
                    all_children[t].textContent = "\„" + all_children[t].textContent.substring(1);
                  }
                }
              }
            }
          }
        }
      }
    }
  }
};
document.addEventListener('DOMContentLoaded',function(){
  setTimeout(function(){
    rewriteQuotes();
  },1);
});
<div class="content_container">
  <h2>"Hello"</h2>
  <p>my "aunti" was driving over the "cat" with her "<em>skateboard</em>".</p>
</div>

【问题讨论】:

    标签: javascript quotes quotation-marks


    【解决方案1】:

    您可以简化您的正则表达式并捕获 "..." 组,然后将这些组的引号替换为您想要的:

    const regex = /"(.*?)"/g;
    const str = `my "aunti" was driving over the "cat" with her "car"`;
    const subst = `„$1“`;
    
    const result = str.replace(regex, subst);
    console.log('Original: ', str);
    console.log('Result: ', result);

    【讨论】:

    • @Rainer:有什么反馈吗?
    • 这看起来是一个非常好的解决方案,但是当在某些重点或类似的地方有一些引号时,我需要解决这种情况。但我感谢您对它的研究,它对我有很大帮助!
    • 我认为您基本上只需要获取要替换引号的每个元素的所有文本内容,然后应用上面的代码。如果您愿意,可以通过单击左侧的复选标记来接受我的回答,如果我的回答有帮助的话。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 2018-09-23
    相关资源
    最近更新 更多