我有一个从对象msg
字段返回的对象。我试图从msg中获取值并将其转换为字符串,以便我可以使用.startswith()
。我正在尝试以下......
var msgstring = msg.value
if(msgstring.startsWith("string")){
//Doing stuff!
}
但是,我收到以下错误...
Uncaught TypeError: Object string here has no method 'startsWith'
我哪里错了?
答案 0 :(得分:16)
Javascript没有startsWith方法。你可以使用
msgstring.indexOf('string') === 0
答案 1 :(得分:2)
错误是正确的,JS没有startsWith
对象的原生string
方法。
您可以自己构建它来扩展原型,或者使用函数:
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!
}
答案 2 :(得分:0)
假设有一个名为“startsWith”的函数,你错了。 JavaScript中没有这样的功能。
请看一下这个问题:
How to check if a string "StartsWith" another string?
您将在那里找到如何将此功能添加到Javascript对象中。
答案 3 :(得分:0)
JavaScript中没有startsWith()
函数。你需要自己写一个。
答案 4 :(得分:0)
您正在阅读的内容,字符串对象(您的变量msgstring)没有名为startsWith的方法。详细了解如何使用字符串in here。
你可能想做类似的事情:
msgstring.substr(0, 6) == "string"
答案 5 :(得分:0)
试试这个:
var msgstring = msg.value;
if(!msgstring.indexOf("string")){
//Doing stuff!
}
答案 6 :(得分:0)
由于每个人都已经提到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将是你要比较的字符串。