提问人:Vanyar 提问时间:3/21/2023 最后编辑:isherwoodVanyar 更新时间:3/22/2023 访问量:19
使用 querySelectAll,无法弄清楚如何在句点和引号后插入空格
Using querySelectAll, can't figure out how to insert a white space after periods and quotation marks
问:
因此,我最近开始深入研究使用 dom 解析来编辑 html 代码,因为人们建议我应该使用它而不是尝试大量使用 replace() 方法。到目前为止,一切都很顺利,但是,今天我偶然发现了一个我无法弄清楚的问题。我的目标是在句点或引号后插入一个空格(如果缺少)。例如,我想做这个“这是一个测试。真的!“变成”这是一个测试。真的!“或者这个”这是一个'废话'测试“变成这个”这是一个'废话'测试”。我尝试了不同的东西,但似乎无法让它工作。所以也许你可以帮我。
现在我有这个:
doc.querySelectorAll('*:not(a):not(img)').forEach(element => {
const space = element.textContent;
const dspace = space.replace(/(\S)([.,:;!?])(\S|$)|(\w)(["'])(\S|$)/g, "$1$2 $3");
element.textContent = dspace;
});
我排除了锚点和图像元素,因为在这些元素中不应该有任何空格,因为它们不再起作用。
我尝试了不同的正则表达式,使用类似的东西。我还有其他代码,但我暂时禁用了该代码(使用)以检查该代码是否搞砸了它,但它仍然不起作用。我真的不知道这是怎么回事。"[^\s]" and "?!\s"
/* */
答: 暂无答案
评论