我正在尝试对 JSON 属性值调用startsWith() 字符串函数:
{“消息”:“xyzabc”}
var jsonResponse = JSON.parse(httpResponse.text);
var stringMessage = jsonResponse.message.toString();
if(stringMessage.startsWith('xyz')) {
...
}
但我收到错误:
Object xyzabc has no method 'startsWith'
我怎样才能做到这一点?
代码在服务器端运行,Express 在 Node.js 上运行
最佳答案
您的浏览器可能不支持 startsWith()
函数,因此您可以使用 RegExp
来解决这个问题,如下所示...
var jsonObject={message:"xyzHELLO"};
var regex=new RegExp("^xyz");
if(regex.test(jsonObject["message"])){
alert("hello");
}
[编辑]
如果您想在每个 string
中添加函数 startsWith()
,您可以像这样添加
if (String.prototype.startsWith !== "function") {
String.prototype.startsWith = function (searching) {
var regex = new RegExp("^" + searching);
if (regex.test(this.toString())) {
return true;
}
else {
return false;
}
}
}
之后你可以像这样使用:
var jsonObject = { message: "xyzHELLO" };
if (jsonObject["message"].toString().startsWith("xyz")) {
alert("start with");
}
else {
alert("not start with");
}
[编辑]
if (String.prototype.startsWith !== "function") {
String.prototype.startsWith = function (searching) {
if (this.toString().indexOf(searching) == 0) {
return true;
}
else {
return false;
}
}
}
根据 @nnnnnn 的评论,我也认为如果我们使用 JavaScript
的 native 函数,这是一个很好的做法,谢谢 @nnnnnn。
关于javascript - JSON 对象和字符串函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38007770/