在打字稿中,我想按空格分隔名称。所以我用了这样的东西

const splitted = name.split(' ');


它按预期工作,但是如果有人错误地给了一个以上的空间。因此,我尝试处理多个空间以进行拆分。像这样,

const splitted = name.split('\\s+');


但是,它以整个字符串为1并且,分割的varabel的长度显示为1

它在java中工作

有什么解释吗?

最佳答案

如果要沿正则表达式使用split,则需要将实际的正则表达式传递给split

const splitted = name.split(/\s+/);


您当前的代码将沿原义的反斜杠,然后是原义的s+,例如:

const name = 'foo\\s+bar';
const splitted = name.split('\\s+');
// splitted: ['foo', 'bar'];

07-24 18:04