簡體   English   中英

將引號添加到逗號分隔的字符串中

[英]Adding quotes to a comma separated string

我有的:

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"

嘗試這個

 var a = "1.1.1.1,2.2.2.2,3.3.3.3"; var b = "'" + a.split( "," ).join( "','" ) + "'"; console.log( b ); 

天真的解決方案看起來像這樣:

> 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解析器,以處理在輸入中嵌入引號和逗號以及換行符和其他瘋狂字符的情況。

不過,幼稚的解決方案似乎與您嘗試做的事情一致,並且可能說明了您的方法失敗的原因。

您不需要為此進行迭代,請使用RegExp替換:

 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"'這樣'"1.1.1.1","2.2.2.2","3.3.3.3"'字符串'"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); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM