在字符的左边换行数字

Wrap numbers to the left of a character

本文关键字:换行 数字 左边 字符      更新时间:2023-09-26

为了给数字字符串添加逗号,我使用以下命令:

someNum.toString().replace(/'B(?=(?:'d{3})+(?!'d))/g, ",")

我需要多做一件事。我需要将逗号左侧的所有内容(在span标签中表示数千或以上的所有数字)都包装起来,以便为这些数字上色。

因此,如果someNum42221,输出将是<span class="someColorClass">42</span>,221,如果someNum221,输出将是221

谢谢!

我不知道这是否是最有效的方法,但这是有效的:

someNum.toString().replace(/'B(?=(?:'d{3})+(?!'d))/g, ",").replace(/^(.*),('d+)$/,'<span class="someColorClass">$1</span>,$2')
123456789 = <span class="someColorClass">123,456</span>,789
42221 = <span class="someColorClass">42</span>,221
221 = 221

假设您从未使用过百万,在初始替换之后,您可以这样做:

someNum = someNum.replace(/('d*)(,'d{3})/g, '<span class="someColorClass">$1</span>$2');

使用两个正则表达式:

var someNum = 12345;
var commaNum = someNum.toString().replace(/'B(?=(?:'d{3})+(?!'d))/g, ",").replace(/^('d+),/,"<span>$1</span>,");
alert(commaNum);

如果是在百万中,那么它将无法突出显示千位。

例子

如果数字大于99,999,则可以使用此正则表达式匹配任何值。它将在匹配中包含逗号。

var someNum = 12345;
var commaNum = someNum.toString().replace(/'B(?=(?:'d{3})+(?!'d))/g, ",").replace(/^(['d,]+)(,'d{3})/g,"<span>$1</span>$2");
alert(commaNum);
示例

不同的方法,检查字符串长度…

var num = "432232121678";
var num2 = "221";
function Parse(num)
{
    var thousand = num.substring(0, num.length - 3);
    if (thousand.length > 0)
    {
        return "<span class='"someColorClass'">" + thousand.replace(/'B(?=(?:'d{3})+(?!'d))/g, ",") + "</span>," + num.substring(num.length - 3)
    }
    return num;
}
Parse(num);
Parse(num2);

输出
"<span class="someColorClass">432,232,121</span>,678"
"221"

查看jsFiddle

上的示例