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

JavaScript正则表达式替换忽略HTML标记的字符,javascript,jquery,html,regex,Javascript,Jquery,Html,Regex,再一次,我需要一些帮助,我感谢你们在这里愿意帮助我。 我正在尝试为JavaScript函数实现一个正则表达式,该函数将替换HTML标记中包含的文本字符串,但完全忽略该标记。 例如: 我需要查找并替换的字符串是美元符号($), 我正在使用的HTML如下所示: <div class="myClass"> <input type="radio" value="$233.93" name="myInput" id="myInputId"> <label>

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

<div class="myClass">
    <input type="radio" value="$233.93" name="myInput" id="myInputId">
    <label>
        $36.<sup>07</sup>
    </label>
</div>

$36.07
如您所见,我在输入标记的value属性中有一个美元金额,在label标记中有另一个美元金额。
所有这些HTML都包含在td(表格单元格)中,td又是表格的一部分,我正在为其实现按列排序功能。
我的问题是,我还没有找到一个正则表达式,它可以完全忽略HTML标记,只匹配标签标记内的字符串(
$36.07
)。

我把这个正则表达式放在一起:
/[$](?=(\d{2,5}[。使用jQuery可以很容易地解决这个问题:

jQuery.trim( jQuery('label').text() )
这将为您剥离标记,并生成
$36.07
,然后您可以使用更简单的正则表达式进行测试


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


嗯,重新阅读您的问题,您可能会问其他问题-要检索包含
$
(并忽略输入)的所有标签,您可以执行以下操作:

jQuery('label:contains($)')


只要金额的格式始终像
$36.07
一样,这将起作用

函数getAmount{

变量r=/\$([^+1到amber,不要使用正则表达式来解析HTML我想我弄错了,我不是在尝试用正则表达式解析HTML,我是在尝试提取一个值并用正则表达式进行测试。这是同一件事吗?jnkrois,你应该编辑你的标题+帖子来阐明你在尝试做什么,而不是你认为它可能是如何做的。非jq版本:
var labels=document.getElementsByTagName('label');for(var len=labels.length,i=0;itrim不是所有浏览器的内置函数?非常感谢,我一定会试试这个。@Peter…哇,我只是在写php…是的trim在javascript AFAIK的任何地方都不存在。我猜
trim
需要去和
c.charAt(0)='$'
需要成为正则表达式匹配项。这应该可以工作。
var labels=document.getElementsByTagName('label');var i=-1,v,c;while(v=labels[++i]){c=((v.textContent | | v.innerText)。匹配(/\$\d+(?:...d+)/)|[])[0];如果(c){/*用c*/}
…顺便说一句,你的正则表达式似乎有点不对劲…你忘了转义
$
,但即使转义,这也只能匹配10美元或更多。我认为如果不更改正则表达式,你的答案将不起作用。
jQuery('label').each( checkForDollars );

function checkForDollars()
{
    if ( jQuery(this).text().matches(/\$\d{2,5}/) } )
    {
        // do something
    }
)
function getAmount (s) { 
  var r = /\$([^<]+)<sup>(\d+)/.exec(s); 
  return r[1]+r[2]; 
}

getAmount("$36.<sup>07</sup>");
// returns "36.07"