将对象转换为字符串

时间:2011-03-15 12:17:55

标签: javascript

我有一个从对象msg字段返回的对象。我试图从msg中获取值并将其转换为字符串,以便我可以使用.startswith()。我正在尝试以下......

 var msgstring = msg.value
 if(msgstring.startsWith("string")){
    //Doing stuff!
 }

但是,我收到以下错误...

Uncaught TypeError: Object string here has no method 'startsWith'

我哪里错了?

7 个答案:

答案 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将是你要比较的字符串。