Bre*_*ett 118 javascript
我正在使用下面的代码尝试修剪Javascript中的字符串,但我收到标题中提到的错误:
function trim(str) {
return str.replace(/^\s+|\s+$/g,'');
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我解决了这个问题....对不起我应该把代码放在我如何调用它上面....意识到我不小心传递了表单字段本身的对象而不是它的值.
Clo*_*boy 167
我的猜测是,调用你的trim
函数的代码实际上并没有将字符串传递给它.
如果您发布该代码,我可以更新我的答案.
T.T*_*dua 83
num=35; num.replace(3,'three'); =====> ERROR
num=35; num.toString().replace(3,'three'); =====> CORRECT !!!!!!
num='35'; num.replace(3,'three'); =====> CORRECT !!!!!!
Kar*_*eem 13
替换不会取代数字.它只替换字符串.
这应该工作.
function trim(str) {
return str.toString().replace(/^\s+|\s+$/g,'');
}
Run Code Online (Sandbox Code Playgroud)
如果你只想修剪弦乐.你可以简单地使用"str.trim()"
您没有传递字符串,否则它将具有replace
方法。希望您function trim(str) { return var.replace(blah); }
不要输入而不是return str.replace
。
在实际执行函数之前,您应该进行一些验证:
function trim(str) {
if(typeof str !== 'string') {
throw new Error('only string parameter supported!');
}
return str.replace(/^\s+|\s+$/g,'');
}
Run Code Online (Sandbox Code Playgroud)
您是否正确调用了函数?就是 您作为参数传递的东西真的是字符串吗?
否则,我看不到您的代码有问题-以下示例按预期工作
function trim(str) {
return str.replace(/^\s+|\s+$/g,'');
}
trim(' hello '); // --> 'hello'
Run Code Online (Sandbox Code Playgroud)
但是,如果使用非字符串形式调用functoin,则确实会出现上述错误:
trim({}); // --> TypeError: str.replace is not a function
Run Code Online (Sandbox Code Playgroud)
如果是数字,则可以尝试转换为字符串:
var stringValue = str.toString();
return stringValue.replace(/^\s+|\s+$/g,'');
Run Code Online (Sandbox Code Playgroud)