通过参数传递制表符分隔符而不拆分字符串

时间:2019-02-20 11:51:27

标签: javascript jquery

本质上,我的问题是,我有一个选择框,其中有2个选项"Tab or CSV",这些选项意味着分割字符串的内容,我的问题是每当我通过"\t"作为参数时,它不会在选项卡上拆分。如果我明确键入"\t",它将拆分字符串,但如果通过参数传递则不会拆分。

我正在尝试创建一个jira table chrome extention的sql结果

问题出在GetDelimiterType函数和GenerateLine< first line中。

我不知道这是怎么回事,如果我检查delimerType的值,它会读出"\t"但不会分裂

$("#btn").click(function(){
    var textToChange = $("#input").val().split("\n");
    var topLineRow = $("#topRow").prop("checked");
    var delimiterType = $("#delimiterSelect option:selected").val();
    var jiraTable = "";
    debugger;
    if(topLineRow){
        jiraTable += GenerateLine("||", textToChange[0], GetDelimiterType(delimiterType))
    }
    topLineRow = false;
    var generatedString = "";
    $.each(textToChange, function(index, value){
        if(!topLineRow){
         jiraTable +=  GenerateLine("|", textToChange[index],GetDelimiterType(delimiterType));
        }
    })

    alert(jiraTable);
})

function GetDelimiterType(delimiterType){
    debugger;
    if(delimiterType == 0){
        return ",";
    }else if(delimiterType == 1){
        return "\\t";
    }
}
function GenerateLine(seperator, row, delimiter){
    var rowArray = row.split(delimiter);
    var rowText = "";
    $.each(rowArray, function(index, value){
        var isLastElement = index == rowArray.length -1;
        value = value.replace(/\s/g,'');
        if(index == 0){
            rowText += seperator;
        }
        if(isLastElement){
            rowText += value + seperator + "\n";

        }else{
            rowText += value + seperator;
        }
    });
    return rowText;
}

1 个答案:

答案 0 :(得分:0)

.split(/.../)

.split()方法可以将正则表达式文字作为分隔符。

  /\b[^\S]+?\b|,\s/
  • \b边界元序列表示单词字符旁边的非空白字符
  • [^\S]+?类忽略一个或多个非空白字符
  • \b如上所述
  • |,\s或文字逗号后跟一个空格

演示

var row = `Mike, Alpha, Tango, Tango  Zulu  Echo  Romeo 0 0 November  Echo`;

var rowArray = row.split(/\b[^\S]+?\b|,\s/);

console.log(JSON.stringify(rowArray));