Как мне обрезать строку в JavaScript?
javascript
string
trim
Винод
источник
источник
String.trim()
также отлично работает из коробки в Node.js.String.trim()
слову сказать, метод класса не существует в ES5 / Node.js; вместо этогоString.prototype.trim()
существует метод экземпляра. Использование:' foo '.trim()
нетString.trim(' foo ')
.$.trim(str)
всегда доступен.Ответы:
Все браузеры начиная с IE9 + имеют
trim()
метод для строк.Для тех браузеров, которые не поддерживают
trim()
, вы можете использовать этот полифилл из MDN :Тем не менее, если использовать
jQuery
,$.trim(str)
также доступен и обрабатывает неопределенный / нуль.Посмотри это:
источник
$.trim(str)
всегда доступен.Обрезка из jQuery удобна, если вы уже используете эту платформу.
Я часто использую jQuery, поэтому для меня это естественно. Но возможно, что есть обратная реакция на jQuery? :)
источник
Хотя есть несколько правильных ответов выше, следует отметить, что
String
объект в JavaScript имеет собственный.trim()
метод, начиная с ECMAScript 5 . Таким образом, в идеале любая попытка создать прототип метода trim должна действительно проверить, существует ли он первым.Добавлен в: JavaScript 1.8.1 / ECMAScript 5
Таким образом поддерживается в:
Firefox: 3,5+
Сафари: 5+
Internet Explorer: IE9 + (только в стандартном режиме!) Http://blogs.msdn.com/b/ie/archive/2010/06/25/enhanced-scripting-in-ie9-ecmascript-5-support-and-more .aspx
Хром: 5+
Опера: 10,5+
Таблица поддержки ECMAScript 5: http://kangax.github.com/es5-compat-table/
источник
Есть много реализаций, которые можно использовать. Наиболее очевидным кажется что-то вроде этого:
источник
Простая версия здесь Что такое общая функция для JavaScript trim?
источник
Я знаю, что этот вопрос был задан три года назад. Теперь он
String.trim()
был добавлен непосредственно в JavaScript. Например, вы можете обрезать его прямо следующим образом:источник
Если вы используете jQuery, используйте
jQuery.trim()
функцию. Например:источник
Flagrant Badassery имеет 11 различных комплектаций с информацией о тестах:
http://blog.stevenlevithan.com/archives/faster-trim-javascript
Неудивительно, что регулярные выражения работают медленнее, чем традиционные циклы.
Вот мой личный. Этот код старый! Я написал его для JavaScript 1.1 и Netscape 3, и с тех пор он лишь немного обновился. (Оригинал использовал String.charAt)
источник
Используйте методы Native JavaScript:
String.trimLeft()
,String.trimRight()
иString.trim()
.String.trim()
поддерживается в IE9 + и во всех других основных браузерах :String.trimLeft()
иString.trimRight()
нестандартны, но поддерживаются во всех основных браузерах, кроме IEОднако поддержка IE проста с помощью функции polyfill:
источник
trimLeft
илиtrimRight
.lTrim()
иrTrim()
методы.Бесстыдно украден у Мэтта Дуэрега .
источник
Теперь вы можете использовать string.trim (), которая является нативной реализацией Javascript.
Смотрите также
источник
Обрезать код из углового проекта JS
и назвать это как
trim(" hello ")
источник
используйте просто код
Поддержка браузера
Для старого браузера добавить прототип
источник
replace
функцию регулярного выражения. я не понял это полностью. Вы хотели бы объяснить это немного подробнее в регулярном выражении?Вот очень простой способ:
источник
trim
следует удалять только начальные и конечные пробелы (включая вкладки и другие символы). Вместо этого это удаляет все пробелы, в том числе посередине.Использование
trim()
on String, которое является нативным, может быть самым простым способом:источник
Вы можете просто объявить вашу переменную как строку и использовать ее функцию trim:
источник
Сегодня почти каждый браузер поддерживает
String.prototype.trim()
.Вы используете это так:
Если вам все еще может потребоваться поддержка старого браузера, который не поддерживает эту функцию, это полифил, предложенный MDN:
источник
У меня есть библиотека, которая использует отделку. так что решил это с помощью следующего кода.
источник
.trim()
метод равным нативному,String.prototype.trim
который уже был установленreturn jQuery.trim(this)
, создавая переполнение стека.От предыдущих ответов он отличается добавлением флага
m
.Флаг
m
будет искать текст несколько линейных. В этом режиме отметка начала и конца шаблона (^
$
) вставляется до и после символа новой строки (\n
).источник
Вы можете сделать это, используя простой JavaScript:
источник
Теперь trim () встроен в javascript.
просто утешите или напечатайте код, тогда ваше имя будет обрезано.
источник
Не знаю, какие ошибки могут скрывать здесь, но я использую это:
Или это, если текст содержит ввод:
Еще одна попытка:
источник
Вот это в TypeScript:
Он вернется к регулярному выражению, если собственный прототип недоступен.
источник
Я написал эту функцию для обрезки, когда функция .trim () была недоступна в JS еще в 2008 году. Некоторые старые браузеры все еще не поддерживают функцию .trim (), и я надеюсь, что эта функция может кому-то помочь.
ТРИМ ФУНКЦИЯ
Объяснение : Функция trim () принимает строковый объект и удаляет все начальные и конечные пробелы (пробелы, табуляции и новые строки) и возвращает обрезанную строку. Вы можете использовать эту функцию для обрезки входных данных формы, чтобы обеспечить отправку правильных данных.
Функция может быть вызвана следующим образом в качестве примера.
источник
Мой использует одно регулярное выражение для поиска случаев, когда необходимо обрезание, и использует результаты этого регулярного выражения для определения желаемых границ подстроки:
единственное дизайнерское решение, которое вошло в это, было использование подстроки для выполнения окончательного захвата. s / \?: // (сделать среднесрочную запись), и замещающий фрагмент становится:
есть две ставки на производительность, которые я сделал в этих имплантах:
реализация подстроки копирует данные исходной строки? если это так, то во-первых, когда строка должна быть обрезана, происходит двойной обход, сначала в регулярном выражении (которое, возможно, может быть частичным), а во-вторых в извлечении подстроки. надеюсь, реализация подстроки ссылается только на исходную строку, поэтому такие операции, как подстрока, могут быть почти бесплатными.скрестить пальцы
Насколько хорош захват в регулярном выражении? средний срок, выходное значение, потенциально может быть очень длинным. я не был готов к банкротству, что захват всех регулярных выражений не будет препятствовать захвату ввода в пару сотен килобайт, но я также не тестировал (слишком много времени выполнения, извините!). второй ВСЕГДА запускает захват; если ваш движок может сделать это без удара, возможно, с использованием некоторых из вышеперечисленных методов веревочной веревки, наверняка используйте его!
источник
Для IE9 + и других браузеров
источник