JavaScript正则表达式替换忽略HTML标记的字符

再一次,我需要一些帮助,我感谢你们在这里愿意提供帮助。
我正在尝试为JavaScript函数实现一个正则表达式,它将替换HTML标记中包含的一串文本,但完全忽略该标记。
例如:
我需要查找和替换的字符串是美元符号($),我正在使用的HTML如下所示:

如您所见,我在输入标记的value属性中有一个美元金额,在label标签内有另一个美元金额。
所有这些HTML都包含在td(表格单元格)中,而表格单元格又是表格的一部分,我正在按照列function实现排序。
我的问题是我无法想出一个完全忽略HTML标签的正则表达式,只匹配我的标签标签内的字符串( $36.07 )。
我把这个正则表达式放在一起:/[ /[$](?=(\d{2,5}[.<]))/
这个正则表达式工作,但只有一半,因为它匹配值属性值的第一个美元符号,授予正则表达式它没有设置为全局,因为它将取代所有美元符号,我不想做那,我也无法改变HTML的结构。

任何帮助将不胜感激。 谢谢

你可以使用jQuery轻松解决这个问题:

 jQuery.trim( jQuery('label').text() ) 

这将为你剥离标签,并产生$36.07 ,然后你可以用更简单的正则表达式进行测试。

(如果您当前没有使用jQuery,并且不想使用它,您仍然可以查看它的源代码,并了解它们如何实现.text()函数以模拟它。 )

嗯,重新阅读你的问题,你可能会问别的东西 – 检索你可以做的所有包含$ (并忽略输入)的标签:

 jQuery('label:contains($)') 

要么

 jQuery('label').each( checkForDollars ); function checkForDollars() { if ( jQuery(this).text().matches(/\$\d{2,5}/) } ) { // do something } ) 

只要金额总是格式化$36.07这将有效。

 function getAmount (s) { var r = /\$([^<]+)(\d+)/.exec(s); return r[1]+r[2]; } getAmount("$36.07"); // returns "36.07"