提问人:Rainer 提问时间:11/13/2020 更新时间:11/13/2020 访问量:184
将所有英文引号替换为德文引号
Replacing all english quotes with german quotes
问:
我在这里问,是否有人可以帮助我进行报价和语法检查。 我知道问题解决方案 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>
答:
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
我认为您基本上只需要获取要替换引号的每个元素的所有文本内容,然后应用上述代码。如果你愿意,你可以通过点击左边的复选标记来接受我的答案,如果我的答案有帮助的话。谢谢:)
评论