2017-06-12 66 views
1

我想在contenteditable div的按键上用空格分割字符串。但是这个分裂工作非常恶劣。.split()在某些字符串上工作奇怪

刚刚尝试运行一次下面的代码:

var d = "mod india jned cjkdem demdjkjncj kdeknd kmdke kmdekmd".split(" "); 
 
document.getElementById("result").innerHTML = JSON.stringify(d);
<div id="result"></div>

预期的输出应该是所有的单词的数组。

+0

它是如何表现奇怪?我运行了代码片段,对我来说显得很好。 – xunatai

+0

这些词之间是否有空格或制表符(或任何其他空格)? – ochi

+0

@xunatai ??你有没有注意到数组中的一些结果字符串有空格? – Pointy

回答

8

您有一些不是普通空格的空格字符(但不是空格)。为了赶上他们也使用正则表达式/\s/,就像这样:

var d = "mod india jned cjkdem demdjkjncj kdeknd kmdke kmdekmd".split(/\s/); 
 
document.getElementById("result").innerHTML = JSON.stringify(d);
<div id="result"></div>

这里是你怎么看你有空白字符,使用charCodeAt(0)

var d = "mod india jned cjkdem demdjkjncj kdeknd kmdke kmdekmd".match(/\s/g) 
 
     .map(ch => ch.charCodeAt(0)); 
 
document.getElementById("result").innerHTML = JSON.stringify(d);
<div id="result"></div>

代码32代表正常空间,而160代表non-breaking space的代码。

+0

这真棒!非常感谢你.. – void

+0

我觉得如果这个答案会引用“gotta catch'em all” – Huangism

+0

这个答案会更令人敬畏,而那些“不正常的空间”字符可以是什么? – void