首页 > 解决方案 > JavaScript 一次替换文本中的多个字符

问题描述

我有一个表,我试图根据表中的值着色。因此,如果表中的值为 150%,则单元格将显示为红色。如果表中的值为 50%,则该值将显示为绿色。但是,由于某种原因,表格中的实际文本中包含大量空格以及 % 符号。如何用空 ('') 替换任何空格和 '%' 字符?

这是我所拥有的不起作用的:

<script type="text/javascript">

        $(document).ready(function () {
            $('#myTable td.PercentMem').each(function () {
                if ($(this).text().replace(/\s/g, '').replace('%', '') >= '100') {
                    $(this).css('background-color', '#ff0000');
                }
                else {
                    $(this).css('background-color', '#33cc33');
                }
            });
        });

    </script>

谢谢!

编辑

我很笨。我忘了包括这些百分比中有小数点的事实。所以,我真正处理的是“50.89%”之类的东西,到目前为止提供的解决方案将其转换为“5089”。我怎样才能保留小数点?

标签: javascript

解决方案


您需要去除所有非数字字符并将结果字符串转换为 int。所以是这样的:parseInt($(this).text().replace(/\D/g,''))。另外,在您的帖子中,您正在与 string 进行比较'100',这显然应该是一个数字。尝试这个:

        $(document).ready(function () {
            $('#myTable td.PercentMem').each(function () {
                if (parseInt($(this).text().replace(/\D/g,'')) >= 100) {
                    $(this).css('background-color', '#ff0000');
                }
                else {
                    $(this).css('background-color', '#33cc33');
                }
            });
        });

免责声明:我还没有实际测试过,但这应该可以。


推荐阅读