使用split-command和“,”

时间:2017-11-23 14:10:47

标签: javascript html arrays string split

我有以下问题:

我有一个数组,其中包含从mssql检索到的大量数据并将其交给jsp,我将在一个示例中简化它:

("test","1","test2","2")
这是4个领域。使用split(“,”)我将4个字段分开,这样我就可以获取每个值并将它们分配给html对象。

现在通过巧合我发现,如果数组填充如下:

("test","1","test,2","2")

其中“test,2”是一个文本,split命令将4个值分隔为5个值。是否有任何替代或方法,以便split命令忽略作为字段字符串一部分的“,”?

问候,

凯文

更新

很抱歉这里的误解让我尽量简化代码:

<script>
   var jsArray = [];
   <%
    // Getting ArrayList from a request Attribute with a lot of data rows
    ArrayList arrayList = (ArrayList)request.getAttribute("DSList");
    for(int i=0;i<arrayList.size();i++){
        %>
        // Pushing each row to javascript array
        jsArray.push("<%= ((ArrayList)arrayList.get(i))%>");
        <%
    }%>
   // thats the split command that gets one line of the whole dataset
   Stringarray = jsArray[x].substr(1,jsArray[x].length-2).split(","); // where x is the current record
</script>

现在我可以简单地用

调用每个字段
Stringarray[n] //where n is the field number

这就是代码的样子,现在的问题是,如果在任何记录行中的一个字符串中是“,”那么split命令显然会返回错误的字段数。我希望现在更清楚我的意思

2 个答案:

答案 0 :(得分:0)

基本上,您有一个后端数据源和一个前端消费者。它恰好发生在同一页面上,因为您正在使用JSP来生成页面和数据。因此,将其视为同步API,只是嵌入到页面中。

您如何在API和JavaScript之间传输数据? JSON。

因此,将结果数组字符串化为JSON字符串并将 嵌入到JSP页面中,然后JSON.parse()将其嵌入到JavaScript中并像其他任何数组一样进行迭代。

由于我没有看到您的JSP代码,因此我无法提出一个更具体的解决方案,即在JSP中创建JSON的链接:how to add a list of string into json object in jsp?和{{3} }

答案 1 :(得分:0)

您可以使用非贪婪的正则表达式过滤掉""中的值,然后使用""从单词中删除array#map

&#13;
&#13;
var string = '("test","1","test,2","2")';
var array = string.match(/"(.*?)"/g).map(function(item){
  return item.replace(/"/g,'');
});
console.log(array);
&#13;
&#13;
&#13;