将对象转换为字符串
问题描述:
我有一个对象从一个字段msg
返回的对象。我试图从msg中获取值并将其转换为字符串,因此我可以使用.startswith()
。我想下面..将对象转换为字符串
var msgstring = msg.value
if(msgstring.startsWith("string")){
//Doing stuff!
}
不过,我得到以下错误...
Uncaught TypeError: Object string here has no method 'startsWith'
我要去哪里错了?
答
Javascript has no startsWith method。您可以使用
msgstring.indexOf('string') === 0
答
的错误是正确的,JS有string
对象没有本地startsWith
方法。
你可以自己构建扩展原型,或使用功能:
function StartsWith(s1, s2) {
return (s1.length >= s2.length && s1.substr(0, s2.length) == s2);
}
var msgstring = msg.value;
if(StartsWith(msgstring, "string") {
//Doing stuff!
}
答
您在假设有一个名为“startsWith”功能会错。 JavaScript中没有这样的功能。
请看看这个问题:
How to check if a string "StartsWith" another string?
你会发现那里的JavaScript对象自己如何卡恩添加此功能。
答
JavaScript中没有startsWith()
函数。你需要自己写一个。
答
确切地说,你正在阅读的是字符串对象(你的变量msgstring)没有一个叫做startsWith的方法。阅读有关使用字符串in here的更多信息。
你可能想这样做:
msgstring.substr(0, 6) == "string"
答
试试这个:
var msgstring = msg.value;
if(!msgstring.indexOf("string")){
//Doing stuff!
}
答
大家都已经提到,可与JS没有startsWith功能,我们需要创建一个为了我们。下面是相同的实现
if (typeof String.prototype.startsWith != 'function') {
//Implementation to startsWith starts below
String.prototype.startsWith = function (str){
return this.indexOf(str) == 0;
};
}
这样做后,你可以直接调用startsWith函数与你的字符串。 此关键字将是您调用该函数的字符串,str将是您与之比较的字符串。
你有一个缺少'''表明这不是你真正的测试用例。 – 2011-03-15 12:21:58
http://*.com/questions/646628/javascript-startswith可能的重复 – Chris 2011-03-15 12:24:52