我怎样才能转换这个字符串
a , b,c,d , e, f
Run Code Online (Sandbox Code Playgroud)
到:
a, b, c, d, e, f
Run Code Online (Sandbox Code Playgroud)
我正在尝试这个正则表达式,但它没有达到我的预期:
str.replace(/(\w)|(?:[ \t]+),(\w)|(?:[ \t]+)/g, "$1, $2")
Run Code Online (Sandbox Code Playgroud)
anu*_*ava 14
您可以这样使用它:
var str = 'a , b,c,d , e, f';
console.log( str.replace(/\s*,\s*/g, ', ') );
//=> a, b, c, d, e, fRun Code Online (Sandbox Code Playgroud)
这里模式\s*,\s*搜索两边都有 0 个或多个空格包围的逗号,我们将其替换为, 以获得所需的输出。
正则表达式不是最容易维护的代码。您可以通过将字符串转换为数组,删除多余的空格,然后将其转换回带有所需分隔符的字符串来实现此目的。
它可能会稍微慢一些,但这不太可能产生明显的影响,并且它会导致更容易阅读代码:
const result = "a , b,c,d , e, f"
.split(",")
.map(char => char.trim())
.join(", ");
console.log(result);Run Code Online (Sandbox Code Playgroud)