删除带前缀的零值

时间:2020-05-10 08:30:22

标签: javascript angular typescript

我写了一个清除所有零值的函数...我该怎么做,以便同时删除带有+和-的所有0?目前仅删除+0。我必须在RegEx中添加什么?

我的代码:

  // Transform values
  public transformAmount(val: number) {
    // console.log('Value', val, val.toLocaleString('de-DE', { maximumFractionDigits: 0 }));
    return val.toLocaleString('de-DE', { maximumFractionDigits: 0 }).replace(/^-0+/, '');
  }

3 个答案:

答案 0 :(得分:2)

您假设您的字符串以-0开头,可能不正确。由于我们不知道您的输入,因此您的文本中的所有0-0+0都有正则表达式。

.replace(/((-|\+)?0)/, '');

答案 1 :(得分:0)

我肯定怀疑const seats = await firestore.collection(SEATS) .where('date.time', '>', new Date()) // This always returns 0 seats though .get() 是否适用于/^-0+/,因为该正则表达式指示字符串的开头应为+0,因此它仅适用于-

因此,如果您要替换-0+0,可以使用以下一个:

-0

/^[-+]?[0]$/g 指示字符串开头的断言位置,^指示字符串中存在的匹配字符,然后

答案 2 :(得分:0)

尝试下一个正则表达式,它将全部删除。

.replace(/^[-0+]+/, '');

"+-0A" // will be "A"
"+-0+-A" // will be "A"
"A+-0+-" // will be "A+-0+-"

如果仅需要删除 0 +0 -0 然后使用

.replace(/^[-+]?0/, '');

+0 -0 然后使用

.replace(/^[-+]0/, '');

如果在任何地方,只需删除前导^并添加g修饰符即可。

.replace(/[-+]0\b/g, ''); // \b - says word border, so +0123 will stay.