Javascript 用于修剪标签周围的空白区域的正则表达式

Javascript 用于修剪标签周围的空白区域的正则表达式,javascript,regex,Javascript,Regex,我目前正在用.replace/>\s+删除HTML标记之间的空格,用两个步骤替换它 代码示例: x = `<hello> a b c </hello> <world> x y z </world>`; x = x.replace(/>\s*/g, '>'); x = x.replace(/\s*</g, '<'); console.log(x); 输出: <hello>a b c</hello&g

我目前正在用.replace/>\s+删除HTML标记之间的空格,用两个步骤替换它

代码示例:

x = `<hello> 
a b c </hello> <world>
 x y z 
 </world>`;
x = x.replace(/>\s*/g, '>');
x = x.replace(/\s*</g, '<');
console.log(x);
输出:

<hello>a b c</hello><world>x y z</world>

将其替换为两个步骤

代码示例:

x = `<hello> 
a b c </hello> <world>
 x y z 
 </world>`;
x = x.replace(/>\s*/g, '>');
x = x.replace(/\s*</g, '<');
console.log(x);
输出:

<hello>a b c</hello><world>x y z</world>

试着这样做:

"<hello> a b c </hello> <world> x y z </world>".replace(/\s*(<\/?.*?\/?>)\s*/g, "$1")
印刷品:

"<hello>a b c</hello><world>x y z</world>"
说明:

\标记前的s*-0或n个空格

-标记或捕获

\标记后的s*-0或n个空格


捕获的标记被放回字符串减去未捕获的匹配空格后的位置

"<hello> a b c </hello> <world> x y z </world>".replace(/\s*(<\/?.*?\/?>)\s*/g, "$1")
印刷品:

"<hello>a b c</hello><world>x y z</world>"
说明:

\标记前的s*-0或n个空格

-标记或捕获

\标记后的s*-0或n个空格


捕获的标记被放回字符串减去未捕获的匹配空格中

通常,您不能使用正则表达式处理任意HTML。在非常受限的情况下,这可能是可能的,例如,如果您知道目标HTML始终适合某些严格的表单。@尖刻的是,只要我避免选择and,我就应该是安全的。替换/>\s+\s+^这似乎是一个答案,而不是对我的注释。如果必须在XML标记之前删除空格,那么您就做错了。你想用它做什么?一般来说,你不能用正则表达式处理任意的HTML。在非常受限的情况下,这可能是可能的,例如,如果您知道目标HTML始终适合某些严格的表单。@尖刻的是,只要我避免选择and,我就应该是安全的。替换/>\s+\s+^这似乎是一个答案,而不是对我的注释。如果必须在XML标记之前删除空格,那么您就做错了。你想用它做什么?