0

我想问一下,是否可以在 PapaParse 中使用正则表达式作为分隔符?就像是:

Papa.parse(string,
 {
    delimiter:regex
 }
);

我正在尝试匹配特定的 CSV 模式,如下所示:

/([A-Za-z]{2}[0-9]+,?)/g

即我想要两个字母、任意数量的数字和一个逗号(或者不是,在最后一个元素的情况下)。

由于 string.split 有一个很好的习惯,即当没有任何内容与正则表达式模式匹配时返回 null 以外的任何内容,我希望我的答案会在 PapaParse 中。如果这是不可能的,那么我会做一些更啰嗦的事情,但希望这次我可以变得懒惰-...高效。:)

尝试执行以下操作:

Papa.parse('ACB5,dsa',{delimiter:'[A-Za-z]{2}[0-9]+,?'});

结果是

["ACB5","dsa"]

感谢您的时间。

编辑

在 regexr.com 上试用正则表达式表明它适用于以下值

AB544444444444,BC5, aa5,

在这一点上,我意识到这实际上是一个昏昏欲睡的问题,考虑到分隔符是如何分隔你想要分解的东西的东西。

我现在正在写更长的版本,所以我会尽快坚持下去

4

1 回答 1

0

正如马特(和常识)正确地说的那样,是的,分隔符就是你的老逗号。我正在寻找一种基于正则表达式分离结果的方法,过去我认为这与 string.split 的工作方式有一些相似之处。这是我试图缩小的片段。

    var result = null;
    var regex = /([A-Za-z]{2}[0-9]+,?)/g;       //Any two letters, a number, and a space
$(document).ready( function() {
  $('#inputGraphText').on('input', function(e){ //on text input...
    result = $(this).val().split(',');          //split using the complex delimiter ','. Also adds a few "" elements to the array for some reason.
    var tidy = new Array();
    result.forEach(function(elem){
        if(elem.search(regex) > -1){
          tidy.push(elem.replace('/[, ]/g',''));//Tidy up the result
        }
    });

    $('#first').html(tidy);                     //place to print out the tidied results
  })
});

显然,这并不是非常时髦(并且完全错过了使用 PapaParse),但这是我最初打算做的。

任何更好的选择都会占据主导地位,但就目前而言,这很好。

我为混乱道歉。

于 2015-07-03T20:48:16.857 回答