将所有英文引号替换为德文引号

Replacing all english quotes with german quotes

提问人:Rainer 提问时间:11/13/2020 更新时间:11/13/2020 访问量:184

问:

我在这里问,是否有人可以帮助我进行报价和语法检查。 我知道问题解决方案 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 引号引

评论


答:

1赞 eol 11/13/2020 #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);

评论

0赞 eol 11/16/2020
@Rainer:有什么反馈吗?
0赞 Rainer 11/18/2020
这看起来是一个非常不错的解决方案,但是当某些强调或类似内容中有一些引号时,我需要解决这种情况。但我感谢您的审视,这对我有很大帮助!
0赞 eol 11/19/2020
我认为您基本上只需要获取要替换引号的每个元素的所有文本内容,然后应用上述代码。如果你愿意,你可以通过点击左边的复选标记来接受我的答案,如果我的答案有帮助的话。谢谢:)