Вар.заменить-это не функция



Я использую приведенный ниже код, чтобы попытаться обрезать строку в Javascript, но получаю ошибку, упомянутую в заголовке:



function trim(str) {
return str.replace(/^s+|s+$/g,'');
}


Edit:



я исправил проблему.... извините, что я должен был поставить код на то, как я его называл.... понял, что я случайно передавал объект самого поля формы, а не его значение.

321   9  

9 ответов:

Я предполагаю, что код, который вызывает ваш и не фактически передавая строку к нему.

Если вы опубликуете этот код, я могу обновить свой ответ.

вероятные вопросы:

  • переменная (вместо строки);
    num=35; num.replace(3,'three'); =====> ERROR
    num=35; num.toString().replace(3,'three'); =====> CORRECT !!!!!!
    num='35'; num.replace(3,'three'); =====> CORRECT !!!!!!
  • переменная объект (вместо строки);
  • переменная не определена;

заменить не заменит номера. Он заменяет только строки.

Это должно работать.

function trim(str) {
    return str.toString().replace(/^\s+|\s+$/g,'');
}

Если вы хотите обрезать строку. Вы можете просто использовать " str.trim ()"

вы, вероятно, должны сделать некоторые проверки, прежде чем фактически выполнить свою функцию :

function trim(str) {
    if(typeof str !== 'string') {
        throw new Error('only string parameter supported!');
    }

    return str.replace(/^\s+|\s+$/g,'');
}

вы не передаете строку, иначе она будет иметь replace метод. Я надеюсь, что вы не набрали function trim(str) { return var.replace(blah); } вместо return str.replace.

вы правильно вызвали свою функцию? То есть. является ли то, что вы передаете как параметр, действительно строкой?

в противном случае, я не вижу проблемы с вашим кодом - пример ниже работает как ожидалось

function trim(str) {
    return str.replace(/^\s+|\s+$/g,'');
}


trim('    hello   ');  // --> 'hello'

однако, если вы вызываете свой functoin с чем-то нестроковым, вы действительно получите ошибку выше:

trim({});  // --> TypeError: str.replace is not a function

в случае числа вы можете попробовать преобразовать в строку:

var stringValue = str.toString();
return stringValue.replace(/^\s+|\s+$/g,'');

вы должны использовать toString() метод Java script для преобразования в строку раньше, потому что метод replace является Строковой функцией.

я исправил проблему.... извините, что я должен был поставить код на то, как я его называл.... понял, что я случайно передавал объект самого поля формы, а не его значение.

в любом случае спасибо за ваши ответы. :)

Comments

    Ничего не найдено.