.split () работает странно на некоторых строках

1

Я пытаюсь разбить строку с пробелами на клавиатуре contenteditable div. Но раскол работает очень странно.

Просто попробуйте запустить код ниже:

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

Ожидаемый результат должен быть массивом всех слов.

Теги:

1 ответ

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 - код неразрывного пространства.

  • 0
    Это круто! Огромное спасибо..
  • 0
    Я чувствую, что этот ответ был бы более удивительным, если бы он содержал ссылку на "должен поймать всех"
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню