Я пытаюсь разбить строку с пробелами на клавиатуре contenteditable div. Но раскол работает очень странно.
Просто попробуйте запустить код ниже:
var d = "mod india jned cjkdem demdjkjncj kdeknd kmdke kmdekmd".split(" ");
document.getElementById("result").innerHTML = JSON.stringify(d);
<div id="result"></div>
Ожидаемый результат должен быть массивом всех слов.
У вас есть несколько символов пробела, которые не являются нормальными пробелами (но неразрывными пробелами). Чтобы поймать их, используйте регулярное выражение /\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 - код неразрывного пространства.