javascript - 在 JavaScript 字符串中用空值替换空值

标签 javascript regex

给定以下字符串:

var str = "[,,,1,2,,,3,4,,,,,,5,6]";

我想用空值替换所有“空”值。换句话说,我想要这个结果:

[null,null,null,1,2,null,null,3,4,null,null,null,null,null,5,6]”

几乎有效,但它错过了第一个空值:

var str = "[,,,1,2,,,3,4,,,,,,5,6]";
str.split(',').map(function(x) { return x ? x : 'null' }).join(',')
// Gives [,null,null,1,2,null,null,3,4,null,null,null,null,null,5,6]

同样,我注意到如果我有尾随空值,它也会错过最后一个:

var str = "[,,,1,2,,,3,4,,,,,,5,6,,]";
str.split(',').map(function(x) { return x ? x : 'null' }).join(',')
// Gives [,null,null,1,2,null,null,3,4,null,null,null,null,null,5,6,null,]

有什么想法可以确保第一个和最后一个空值也被替换吗?

谢谢!

最佳答案

如前所述 - [ 和 ] 正在改变你的返回 - 这将删除它们并使用与现有函数相同的函数 - 但在缩短的字符串上并返回正确的值。

var str = "[,,,1,2,,,3,4,,,,,,5,6]";
let newStr = str.substring(1,str.length-1).split(',').map(function(x) { return x ? x : 'null' }).join(',')

console.log(newStr);
// Gives [null,null,null,1,2,null,null,3,4,null,null,null,null,null,5,6]


var str = "[,,,1,2,,,3,4,,,,,,5,6,,]";

newStr = str.substring(1,str.length-1).split(',').map(function(x) { return x ? x : 'null' }).join(',');
console.log(newStr);
// Gives null,null,null,1,2,null,null,3,4,null,null,null,null,null,5,6,null,null

关于javascript - 在 JavaScript 字符串中用空值替换空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48758819/

相关文章:

javascript - 如何使用 for 循环发出多个 AJAX 请求

javascript - 在其焦点区域外单击时弹出框不关闭

regex - 将任何非数字转换为空白

javascript - 如何使用 javascript 检查变量是否既不是 null 也不是空字符串?

javascript - 使对象无法实例化,除非使用我设置的函数? Javascript

javascript - 如何在 <button> 中将 <div> 居中?

php - 将 NOT REGEXP 与 REGEXP 一起使用会弄乱我的结果

python - 用于匹配 mRNA 序列的正则表达式

javascript - RegEx - 匹配 2 个或更多 CSS 属性并在单个类中捕获它们的值

java - 需要帮助使用正则表达式在 java 中拆分字符串