javascript - строку - удалить символ из строки js




Строка обрезки в JavaScript? (16)

В настоящее время вы можете использовать MDN которая является встроенной реализацией Javascript

var orig = "   foo  ";
console.log(orig.trim());//foo

Смотрите также

Как обрезать строку в JavaScript?


Вот очень простой способ:

function removeSpaces(string){
return string.split(' ').join('');
}

Вы можете просто объявить свою переменную как строку и использовать ее функцию trim:

var str = new String('my string'); 
str= str.trim();

Вы можете сделать это, используя простой JavaScript:

function trimString(str, maxLen) {
if (str.length <= maxLen) {
return str;
}
var trimmed = str.substr(0, maxLen);
return trimmed.substr(0, trimmed.lastIndexOf(' ')) + '…';
}

// Let's test it

sentenceOne = "too short";
sentencetwo = "more than the max length";

console.log(trimString(sentenceOne, 15));
console.log(trimString(sentencetwo, 15));

Ниже приведены некоторые примеры для обрезки строки с использованием JavaScript .


Если вы используете jQuery, используйте jQuery.trim() . Например:

if( jQuery.trim(StringVariable) == '')

Здесь он находится в TypeScript:

var trim: (input: string) => string = String.prototype.trim
    ? ((input: string) : string => {
        return (input || "").trim();
    })
    : ((input: string) : string => {
        return (input || "").replace(/^\s+|\s+$/g,"");
    })

Он вернется в регулярное выражение, если родной прототип недоступен.


Код обрезки с угловым проектом js

var trim = (function() {

  // if a reference is a `String`.
  function isString(value){
       return typeof value == 'string';
  } 

  // native trim is way faster: http://jsperf.com/angular-trim-test
  // but IE doesn't have it... :-(
  // TODO: we should move this into IE/ES5 polyfill

  if (!String.prototype.trim) {
    return function(value) {
      return isString(value) ? 
         value.replace(/^\s*/, '').replace(/\s*$/, '') : value;
    };
  }

  return function(value) {
    return isString(value) ? value.trim() : value;
  };

})();

и назовите его как trim(" hello ")


Не знаю, какие ошибки могут скрыть здесь, но я использую это:

var some_string_with_extra_spaces="   goes here    "
console.log(some_string_with_extra_spaces.match(/\S.*\S|\S/)[0])

Или это, если текст содержит:

console.log(some_string_with_extra_spaces.match(/\S[\s\S]*\S|\S/)[0])

Еще одна попытка:

console.log(some_string_with_extra_spaces.match(/^\s*(.*?)\s*$/)[1])


Сегодня почти каждый браузер поддерживает String.prototype.trim() .

Вы используете его следующим образом:

var origStr = '   foo  ';
var newStr = origStr.trim(); // Value of newStr becomes 'foo'

Если вам все-таки понадобится поддержка старого браузера, который не поддерживает эту функцию, это полиполк, предложенный MDN:

if (!String.prototype.trim) {
    String.prototype.trim = function () {
       return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
    };
}

У меня есть lib, который использует обрезку. поэтому решил это, используя следующий код.

String.prototype.trim = String.prototype.trim || function(){ return jQuery.trim(this); };

Хотя есть несколько правильных ответов выше, следует отметить, что объект String в JavaScript имеет собственный .trim() по ECMAScript 5 . Таким образом, в идеале любая попытка прототипа метода обрезки должна действительно проверить, не существует ли он вначале.

if(!String.prototype.trim){  
  String.prototype.trim = function(){  
    return this.replace(/^\s+|\s+$/g,'');  
  };  
}

Добавлено изначально в: JavaScript 1.8.1 / ECMAScript 5

Таким образом, поддерживается:

Firefox: 3.5+

Safari: 5+

Internet Explorer: IE9 + (только в стандартном режиме!) http://blogs.msdn.com/b/ie/archive/2010/06/25/enhanced-scripting-in-ie9-ecmascript-5-support-and-more.aspx

Chrome: 5+

Опера: 10.5+

Таблица поддержки ECMAScript 5: http://kangax.github.com/es5-compat-table/


Я написал эту функцию для обрезки, когда функция .trim () была недоступна в JS еще в 2008 году. Некоторые из старых браузеров по-прежнему не поддерживают функцию .trim (), и я надеюсь, что эта функция может помочь кому-то.

ФУНКЦИЯ TRIM

function trim(str)
{
    var startpatt = /^\s/;
    var endpatt = /\s$/;

    while(str.search(startpatt) == 0)
        str = str.substring(1, str.length);

    while(str.search(endpatt) == str.length-1)
        str = str.substring(0, str.length-1);   

    return str;
}

Объяснение : Функция trim () принимает строковый объект и удаляет все начальные и конечные пробелы (пробелы, вкладки и новые строки) и возвращает обрезанную строку. Вы можете использовать эту функцию, чтобы обрезать входные данные формы, чтобы обеспечить доставку достоверных данных.

В качестве примера функцию можно вызвать следующим образом.

form.elements[i].value = trim(form.elements[i].value);

использовать просто код

var str = "       Hello World!        ";
alert(str.trim());

Поддержка браузера

Feature         Chrome  Firefox Internet Explorer   Opera   Safari  Edge
Basic support   (Yes)   3.5     9                   10.5    5       ?

Для старого браузера добавить прототип

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
  };
}

Flagrant Badassery имеет 11 различных планок с контрольной информацией:

http://blog.stevenlevithan.com/archives/faster-trim-javascript

Неудивительно, что regexp-based медленнее, чем традиционный цикл.

Вот моя личная. Этот код устарел! Я написал его для JavaScript1.1 и Netscape 3, и с тех пор он немного обновлялся. (Оригинал используется String.charAt)

/**
 *  Trim string. Actually trims all control characters.
 *  Ignores fancy Unicode spaces. Forces to string.
 */
function trim(str) {
    str = str.toString();
    var begin = 0;
    var end = str.length - 1;
    while (begin <= end && str.charCodeAt(begin) < 33) { ++begin; }
    while (end > begin && str.charCodeAt(end) < 33) { --end; }
    return str.substr(begin, end - begin + 1);
}

String.prototype.trim = String.prototype.trim || function () {
    return this.replace(/^\s+|\s+$/g, "");
};

String.prototype.trimLeft = String.prototype.trimLeft || function () {
    return this.replace(/^\s+/, "");
};

String.prototype.trimRight = String.prototype.trimRight || function () {
    return this.replace(/\s+$/, "");
};

String.prototype.trimFull = String.prototype.trimFull || function () {
    return this.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g, "").replace(/\s+/g, " ");
};

Бесстыдно украден у Мэтта дуэрега .





trim