用于在Typescript(或Javascript)中生成CSV文件的本地分隔符

用于在Typescript(或Javascript)中生成CSV文件的本地分隔符,javascript,excel,typescript,Javascript,Excel,Typescript,我正在寻找“正确”的方法来确定用户区域性中的列表分隔符。 现在我正在使用以下代码: private static SetSeparator() { var list = ['a', 'b']; var s = list.toLocaleString(); var sep = s[1]; CSVGenerator.Delimiter = sep; } 它是有效的,但似乎有点粗糙。我想知道是否有一种文档化的方法可以在Typescript(或JavaScript)中获

我正在寻找“正确”的方法来确定用户区域性中的列表分隔符。 现在我正在使用以下代码:

private static SetSeparator() {
    var list = ['a', 'b'];
    var s = list.toLocaleString();
    var sep = s[1];
    CSVGenerator.Delimiter = sep;
}
它是有效的,但似乎有点粗糙。我想知道是否有一种文档化的方法可以在Typescript(或JavaScript)中获取本地列表分隔符

我需要这些信息在客户端正确生成CSV文件。
谢谢

我认为你的答案中的解决方案可能是最好的。下面是一个关于类似问题的问题/答案(查找当前区域设置的十进制分隔符)-接受的答案与问题中的解决方案非常相似:

如果您担心由多于1个字符组成的分隔符(尽管我认为这是一个合理的假设),您可以让函数选择测试数组中两个字符之间的所有内容,而不是盲目地在
[1]
:

function SetSeparator(){
//变量列表=['a','b'];
//var s=list.toLocaleString();
//让我们假设当前分隔符为||
变量s='a | | b';
var reg=/a(.*)b/;
var sep=注册执行官[1]
document.writeln('当前区域设置的分隔符为:“+sep+”);
}

设置分离器()toLocaleString()将用于解析日期对象或数字。据我所知,默认的“,”分隔符永远不会改变,除非我误解了你的问题。实际上,“不是默认值,它取决于用户当前的语言/国家设置。如果您使用法语设置(例如),您的默认分隔符将是“;”。有趣的是,我不知道。您的解决方案看起来确实有点“hacky”,但我猜是在list.unshift('a')中添加了一个填充字符然后使用第二个字符索引作为分隔符将在您得到的数组具有不同长度的第一个位置元素时保持一致。唯一的问题是,我不确定世界上所有国家都只使用1个字符作为分隔符。这就是为什么我要求某种“记录”的方式来找到这个(这些)字符,用最新的chrome用法语试过,我得到的是“,”这是不正确的。知道为什么吗?