我写了一个清除所有零值的函数...我该怎么做,以便同时删除带有+和-的所有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+/, '');
}
答案 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.