我想用空字符串替换字符串中的点(。),如下所示:
1.234 => 1234 然而,正则表达式使它完全为空。
let x = "1.234";
let y = x.replace(/./g , "");
console.log(y);

然而,当我像这样替换逗号(,)时,它的效果很好:
let p=x.replace(/,/g , "");
在第一种情况下出现了什么问题,即用空字符串替换点(。)?如何解决?
我正在角度使用它。
答案 0 :(得分:4)
试试这个:
let x: string = "1.234";
let y = x.replace(/\./g , "");
Dot .
是Regex中的一个特殊字符。如果您需要更换点本身,则需要在其前面添加反斜杠转义:\.
在此处阅读有关正则表达式特殊字符的详情:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
答案 1 :(得分:1)
使用/[.]/g
代替/./g
而.
匹配any character
除whitespaces
console.log('3.14'.replace(/[.]/g, '')); // logs 314
{{1}}
答案 2 :(得分:0)
另一种方法(另一篇文章已经用正则表达式回答)是使用split
创建一个数组,然后用join
加入数组的元素
let x = "1.234";
// splitting by dot(.) delimiter
// this will create an array of ["1","234"]
let y = x.split('.').join(''); // join will join the elements of the array
console.log(y)