将对象转换为字符串

3

我从一个名为msg的字段得到了一个对象,我尝试从该对象中获取值并将其转换为字符串,以便我可以使用.startswith()函数。 我正在尝试以下方法..

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

然而,我收到了以下错误信息...
Uncaught TypeError: Object string here has no method 'startsWith'

我错在哪里了?


1
你缺少了一个 ),这表明这不是你真正的测试用例。 - Lightness Races in Orbit
可能是 https://dev59.com/DXRB5IYBdhLWcg3wXWO2 的重复问题,该问题与 JavaScript 的 startsWith 相关。 - Chris
7个回答

16

Javascript没有startsWith方法。你可以使用

msgstring.indexOf('string') === 0

2
错误是正确的,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!
 }

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将是您要进行比较的字符串。


0

您正在阅读的,字符串对象(您的变量 msgstring)没有称为 startsWith 的方法。更多关于使用字符串的信息请参考这里

您可能想要执行类似以下的操作:

msgstring.substr(0, 6) == "string"

0

0

JavaScript 中没有 startsWith() 函数。你需要自己编写一个。


0

试试这个:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接