Я пытаюсь найти способ обрезать пробелы от начала и конца строки заголовка. Я использовал это, но это не похоже на работу:
title = title.replace(/(^[\s]+|[\s]+$)/g, '');
Любые идеи?
javascript
regex
Джеймс Джеффри
источник
источник
.trim
встроен, так что это ответ для современных браузеров: stackoverflow.com/a/3000900/29182function trim11 (str) { str = str.replace(/^\s+/, ''); for (var i = str.length - 1; i >= 0; i--) { if (/\S/.test(str.charAt(i))) { str = str.substring(0, i + 1); break; } } return str; }
Ответы:
Примечание. Начиная с 2015 года все основные браузеры (включая IE> = 9) поддерживают String.prototype.trim () . Это означает, что в большинстве случаев простое выполнение
str.trim()
является лучшим способом достижения того, что задает вопрос.Стивен Левитан проанализировал множество различных реализаций
trim
в Javascript с точки зрения производительности.Его рекомендация:
для «реализации общего назначения, которая является быстрой кросс-браузерной», и
msgstr "если вы хотите обрабатывать длинные строки исключительно быстро во всех браузерах".
Ссылки
источник
String.prototype.trim = String.prototype.trim || function trim() { return this.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); };
/^\s\s*/
а не это/^\s*/
trim1
иtrim11
?Если вы используете jQuery - это вариант:
или просто:
источник
Как упомянуто @ChaosPandion ,
String.prototype.trim
метод был введен в Спецификацию ECMAScript 5-го издания , некоторые реализации уже включают этот метод, поэтому лучший способ - обнаружить собственную реализацию и объявить ее, только если она недоступна:Тогда вы можете просто:
источник
String.prototype.trim
это не функция, она неString.prototype.trim
метод , описанный на ECMAScript 5th Edition Спецификация, спецификация гарантирует, чтоtrim
это функциональный объект в средах ES5.throw { name: "UnlikelyPolyfillException", message: "Did someone really write a property on the String prototype named 'trim' that isn't a ECMA 5 compatible shim? Come on now, that's crazy." }
Я знаю, что это старый пост, но просто подумал, что поделюсь нашим решением. В поисках кратчайшего кода (разве не все любят лаконичное регулярное выражение) можно использовать:
Кстати, я провел этот же тест по ссылке, указанной выше на blog.stevenlevithan.com - более быстрая обрезка JavaScript и этот шаблон побил все другие РУКИ!
Используя IE8, добавил тест как test13. Результаты были:
источник
ECMAScript 5 поддерживает
trim
и это было реализовано в Firefox.отделка салона - MDC
источник
Здесь это должно делать все, что вам нужно
источник
Вот некоторые методы, которые я использовал в прошлом для обрезки строк в js:
источник
^[\s*]+
совпадает*
в начале строки, так что ваша функция обрезается"*** Foo"
до"Foo"
.Вот мой текущий код, вторая строка работает, если я комментирую третью строку, но не работает, если я оставляю все как есть.
источник
Просто используйте
string.trim()
метод. Поддерживается всеми основными браузерами. Ссылка здесь: http://www.w3schools.com/jsref/jsref_trim_string.aspисточник
jQuery.trim ("привет, как дела?");
:)
источник
Когда DOM полностью загружен, вы можете добавить его ко всем текстовым полям. У меня никогда не было ситуации, когда мне нужно было указывать лидирующие или конечные пробелы, поэтому все это время для меня работало глобально ...
источник
blur
действительно ли происходит перед отправкой, когда я нахожусь в полях и нажимаю <kbd> enter </ kbd>, чтобы отправить форму?Это то, что предлагает JavaScript Архитектор / Гуру Дуглас Крокфорд.
Примечание: вы должны определить «метод» для Function.prototype.
альтернативно
наблюдение
В последних браузерах метод обрезки включен по умолчанию. Так что вам не нужно добавлять это явно.
Основные браузеры Chrome, Firefox, Safari и т. Д. Поддерживают метод обрезки . Проверено в Chrome 55.0.2883.95 (64-разрядная версия), Firefox 51.0.1 (64-разрядная версия), Safari 10.0 (12602.1.50.0.10).
источник
источник
рекурсивная попытка для этого
позвоните так:
если вы хотите отфильтровать специальные символы, вы можете определить строку списка:
источник
' '
, но речь идет о белом пространстве в целом, в том числе"\n"
,"\t"
и других не печатаемых символов, которые подбираются в регулярном выражении путем/\s/
.