Javascript正则表达式以匹配不在HTML标记定义内的最后一个空格

Javascript正则表达式以匹配不在HTML标记定义内的最后一个空格,javascript,regex,Javascript,Regex,我试图找出一些JavaScript正则表达式,它将匹配不在HTML标记中的最后一个空格。例如,在以下示例中: // Should match the space between `custom` and `text` My custom text; // Should match the space between `a` and `link` My custom text with <a href="#">a link<a/>. // Should still ma

我试图找出一些JavaScript正则表达式,它将匹配不在HTML标记中的最后一个空格。例如,在以下示例中:

// Should match the space between `custom` and `text`
My custom text;

// Should match the space between `a` and `link`
My custom text with <a href="#">a link<a/>.

// Should still match the space between `a` and `link`
My custom text with <a href="#">a link<a/><span style="color: red;">.</span>
//应该匹配'custom'和'text'之间的空格`
我的自定义文本;
//应该匹配'a'和'link'之间的空格`
我的自定义文本(已修改),用于选择HTML标记中未包含的所有空格:
(?]*)\s(?)*
给你

有什么想法吗?

您需要
\s+((\s |]+>)*)$
查找1个或多个空格,后跟0个或多个非空格或html标记

请看下面的代码片段:

var txt1='我的自定义文本',
txt2='My custom text with a link',
txt3='我的自定义文本与链接';
var reg=new RegExp(/\s+((\s |]+>)*)$/,'g');
控制台日志(txt1.replace(reg,“$1”);
控制台日志(txt2.replace(reg,“$1”);

控制台。日志(TXT3.替换(Reg,“1美元”);如果你希望这是可靠的:你不能使用正则表达式来确定一个空格是否在HTML标签中。<代码>(?)*(为什么)你需要它?”瑞恩感谢这些信息。我想我没意识到这对ReGEX来说是一个棘手的问题。也许我会考虑另一种方法。“你应该考虑一个完全不同的方法”是一个有用的答案!“KSHHORY,这是一个轻微的贫民窟,但基本上我的客户真的想要避免排版遗孀。典型的方法是在最后两个词之间添加一个<代码> <代码>。我希望在不打破标签的情况下做到这一点。(顺便说一句,我在保存之前是在管理端这样做的,这样我就可以避免插入nbsp之前的计算和闪存,如果我只是在加载页面时这样做的话,就会出现这种情况)。你最好按照DOM的方式,获取任何元素中的最后一个文本节点您需要将此应用于,并将其中的最后一个空格替换为不中断的空格。如果替换操作返回与以前相同的文本内容(因此此文本节点中没有空格),移到最后一个文本节点,等等。展示了一种使用XPath和PHP DOM获取所有文本节点的方法,在JS中有几种方法可以实现同样的效果。对于我所需要的,这显然是一个简单而完整的解决方案。谢谢!