Я использую приведенный ниже код, чтобы попытаться обрезать строку в Javascript, но получаю ошибку, указанную в заголовке:
function trim(str) {
return str.replace(/^\s+|\s+$/g,'');
}
Редактировать:
Я исправил проблему .... извините, я должен был указать, как я его называл, тоже .... понял, что случайно передал объект самого поля формы, а не его значение.
javascript
Brett
источник
источник
str
наверное, это не строкаregex
строки, что в любом случае может быть не очень хорошо.str.toString().replace(/^\s+|\s+$/g,'')
Вместо этого используйте .Ответы:
Я предполагаю, что код, вызывающий вашу
trim
функцию, на самом деле не передает ей строку.Чтобы исправить это, вы можете сделать
str
строку, как это:str.toString().replace(...)
... а Альпер отметил ниже.
источник
str.toString()
исправил мою проблему.str.toString()
это решение , только если вы передаете правильное значение, которое может быть успешно преобразовано в строку; в моем случае я вообще передавал не то. :)возможные проблемы:
num=35; num.replace(3,'three'); =====> ERROR
num=35; num.toString().replace(3,'three'); =====> CORRECT !!!!!!
num='35'; num.replace(3,'three'); =====> CORRECT !!!!!!
источник
Это должно сработать.
Если вы хотите только обрезать строку. Вы можете просто использовать "str.trim ()"
источник
Вы не передаете строку, иначе у нее был бы
replace
метод. Надеюсь, вы не набралиfunction trim(str) { return var.replace(blah); }
вместоreturn str.replace
.источник
Вероятно, вам следует выполнить некоторые проверки, прежде чем фактически выполнять свою функцию:
источник
Вы правильно назвали свою функцию? То есть. действительно ли то, что вы передаете в качестве параметра, является строкой?
В противном случае я не вижу проблем с вашим кодом - приведенный ниже пример работает должным образом.
Однако, если вы вызываете свой functoin с чем-то нестроковым, вы действительно получите ошибку, указанную выше:
источник
В случае числа вы можете попробовать преобразовать в строку:
источник
Вы должны использовать метод toString () java-скрипта для преобразования в строку раньше, потому что метод replace является строковой функцией.
источник
Я исправил проблему .... извините, я должен был указать, как я его называл, тоже .... понял, что случайно передал объект самого поля формы, а не его значение.
В любом случае спасибо за ваши ответы. :)
источник
убедитесь, что вы передаете строку методу "replace". Была такая же проблема, и я решил ее, передав строку. Вы также можете преобразовать его в строку, используя метод toString ().
источник