添加引号一个逗号分隔字符串

问题描述:

我有什么:添加引号一个逗号分隔字符串

var a = "1.1.1.1,2.2.2.2,3.3.3.3"

我需要什么:

var a = '1.1.1.1','2.2.2.2','3.3.3.3'

我试图:

var a = "1.1.1.1,2.2.2.2,3.3.3.3" 
var b = a.split(",") 
var c 
for (var i=0;i<b.length; i++) 
    { 
     c.concat("\'").concat(b[i]).concat("\',\"") 
    } 

什么我实际上上述

"'1.1.1.1','"

我只能得到第一个元素右饶人,我怎么纠正呢? 另外,在JS中,甚至可能存储类似'1.1.1.1','2.2.2.2','3.3.3.3'的变量?

的背景这个问题:

我有一个iframe的源是kibana查询。事实上,查询将以上述格式将值传递给特定的参数。

如: params:!('1.1.1.1','2.2.2.2')

虽然我的数据库包含帕拉姆值CSV的字符串。

例如, "1.1.1.1,2.2.2.2,3.3.3.3"

+0

能否请您确认,如果你的**我需要什么:**不包含错字。为什么有一个随机的'''? – shash678

+0

你想存储多个值在一个变量或是一个字符串? – Walk

+0

@ shash678 - 道歉,这是一个错字 @Walk - 我需要能够取代csv我已经取代了格式为''''string','string','string''''的值的实际查询。 – blueren

试试这个

var a = "1.1.1.1,2.2.2.2,3.3.3.3"; 
 

 
var b = "'" + a.split(",").join("','") + "'"; 
 

 
console.log(b);

+0

对不起,额外的“最后是我的一个错字。 – blueren

天真的解决问题的方法是这样的:

> line = '1.1.1.1,2.2.2.2,3.3.3.3' 
'1.1.1.1,2.2.2.2,3.3.3.3' 
> '"' + line.replace(/,/g, '","') + '"' 
'"1.1.1.1","2.2.2.2","3.3.3.3"' 

,或者如果报价需要反转:

> "'" + line.replace(/,/g, "','") + "'" 
'\'1.1.1.1\',\'2.2.2.2\',\'3.3.3.3\'' 

但是,它听起来像你需要的是一个全面的CSV解析器,用于处理在输入中嵌入了引号和逗号以及新行和其他疯狂字符的情况。

虽然天真的解决方案似乎与您正在尝试做的事情一致,并且可能会说明您的方法为何不足。

+0

谢谢雷,我现在还没有找到一个完整的解决方案。非常微不足道的东西就绰绰有余! :) – blueren

你并不需要处理重复这一点,使用正规更换:

var a = "1.1.1.1,2.2.2.2,3.3.3.3"; 
 

 
var b = "'" + a.replace(/,/g, "','") + "'"; 
 

 
console.log(b);

你的代码工作,你打算。你可以附加到C没有声明?

var a = "1.1.1.1,2.2.2.2,3.3.3.3" 
 
var b = a.split(",") 
 
var c = "" 
 
for (var i=0;i<b.length; b++) 
 
{ 
 
    c.concat("\'").concat(b[i]).concat("\',\"") 
 
    console.log(b) 
 
}

可以通过使用阵列例如存储在一个变量几个值。 如果你想获得字符串如'"1.1.1.1","2.2.2.2","3.3.3.3"'你可以使用下面的代码:

var a = "1.1.1.1,2.2.2.2,3.3.3.3"; 
 
var b = a.split(',').map(function (str) { 
 
    return '"' + str+ '"'; 
 
}).join(','); 
 
console.log(b);