slugify ваша строка таким образом, он удалит нежелательные символы, включая -
.
trim () принимает в качестве 2-го параметра все символы, которые вы хотите удалить . Посмотрите на прокомментированную строку THIS WILL FIX YOUR EXISTING PROBLEM
Вывод:
top-ways-to-avoid-list
top-ways-to-get-in-top
DEMO: https: //3v4l.org/ljtlZ
ИЛИ с вашим существующим кодом, обрезающим несколько символов -
или пробелы
ДЕМО: [ 1119] https://3v4l.org/aBtHI
(обновленный из-за ошибки... Предложение всем: не отправляйте на ПОЭТОМУ, прежде чем Вы полностью будете бодрствовать)
, Вероятно, из-за оптимизации. Excel 2007 может иметь максимум 16В 384 столбца и 1В 048В 576 строк. Странные числа?
14 битов = 16В 384, 20 битов = 1В 048В 576
14 + 20 = 34 бита = больше чем один регистр на 32 бита может содержать.
, Но они также должны сохранить формат ячейки (текст, число и т.д.) и форматирующий (цвета, границы и т.д.). При принятии они используют два 32-разрядных слова (64 бита), они используют 34 бита для числа ячейки и имеют 30 битов для других вещей.
, Почему это важно? В памяти они не должны выделять всю память, необходимую для целой электронной таблицы, но только памяти, необходимой для Ваших данных, и каждые данные отмечены с в том, в какой ячейке это, как предполагается, находится.
Обновление 2016:
Найденный ссылкой на спецификация Microsoft для Excel 2013 & 2016
Одним словом - скорость. Индекс максимум для миллиона строк помещается в 32-разрядное слово, таким образом, он может использоваться эффективно на 32-разрядных процессорах. Аргументы функции, которые помещаются в регистр ЦП, чрезвычайно эффективны, в то время как, которые больше, требуют памяти доступа на каждом вызове функции, намного более медленной операции. Обновление электронной таблицы может быть интенсивными действиями, включающими много ссылок на ячейки, таким образом, скорость важна. Кроме того, команда Excel ожидает, что любой имеющий дело больше чем с миллионом строк будет использовать базу данных, а не электронную таблицу.