gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 18:52:26 25 4
gpt4 key购买 nike

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

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

如您所见,我在 input 标签的 value 属性中有一个美元金额,在 label 标签中有另一个美元金额。
所有这些 HTML 都包含在一个 td(表格单元格)中,它又是表格的一部分,我正在为此实现按列排序的功能。
我的问题是我无法想出一个正则表达式来完全忽略 HTML 标签并只匹配我的标签标签 ( $36.<sup>07</sup> ) 中的字符串。
我把这个正则表达式放在一起:/[$](?=(\d{2,5}[.<]))/
这个正则表达式有效,但只有一半,因为它匹配 value 属性值中的第一个美元符号,授予正则表达式它没有设置为全局,因为它会替换所有美元符号而且我不想这样做那,我也不能改变 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
}
)

关于JavaScript 正则表达式替换忽略 HTML 标签的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3373337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com