1

我正在用 javascript 制作一个(类似 Excel 的)数字格式化函数。我想使用像“0 000.00”和“000.000.000”这样的模板,它们会产生:

format(123456789,"0 000.00") >> "123 456 789.00"
format(123456789,"000\.000\.000") >> "123.456.789"

所以我需要匹配'。前面没有'\'。由于 javascript 中没有后视功能,因此拆分模板的整个和小数部分的正则表达式是什么?

不幸的是,这不起作用:-(

template.split(/(?<!\\)\./);
4

1 回答 1

3

反转字符串并改用负前瞻。

template.split("").reverse().join("")
        .split(/\.(?!\\)/)
        .split("").reverse().join("");

这是一种“有趣”的方式,但对于您的情况,还有其他可能更好的方式。\.就像用魔术字符串替换所有一样__MAGIC__,拆分.,然后撤消魔术字符串。

于 2012-11-10T09:21:36.483 回答