本质上,我的问题是,我有一个选择框,其中有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;
}
答案 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));