我是JS的新手,我尝试过以下代码,
var str = "\">2\""
var res = str.substring(2,1);
返回 >
预期: 2
我已通过以下代码检查了这个,
var str = "\">2\""
var res = str.substring(2);
返回 "2\"
预期: "2\"
如果我误解了任何内容,请告诉我,为什么它会返回>
而不是2
。在C#中它可以正常工作。
提前致谢
答案 0 :(得分:6)
实际上你在案例1中做错了吗
当你这样做时
str.substring(1,2);
这实际上意味着
>
来自docs
如果indexStart大于indexEnd,则substring()的效果就好像交换了两个参数一样;例如,str.substring(1,0)== str.substring(0,1)。
由于1,2处的字符为str.substring(2);
,因此您得到相同的结果。
但是当你这样做时
str.substring(2, str.length-1);
它实际上等于
using System.Collections.Generic;
using System.ServiceModel;
using System.ServiceModel.Web;
namespace BaseWebServices
{
// NOTE: The interface name "IMessage" here must match the references to "IMessage" in Web.config.
// NOTE 2: Parameters must be string data type when using UriTemplate
[ServiceContract]
public interface IMessage
{
[OperationContract]
[WebInvoke(
Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.WrappedRequest,
UriTemplate = "GetBasket")]
List<BasketItemDTO> GetBasket();
}
}
如果省略indexEnd,则substring()将字符提取到字符串的末尾。
答案 1 :(得分:0)
javascript substring函数将像这样工作
string.substring(开始,结束)
package pojos;
import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
import java.util.List;
public class GeoEvent {
public String userId;
public GeoEvent(String userId){
this.userId= userId;
}
public List<GeoEvents> Table = new ArrayList<>();
public class GeoEvents {
@SerializedName("Location")
public String Location;
@SerializedName("DateTime")
public String DateTime;
public String getLocation() {
return Location;
}
public void setLocation(String location) {
Location = location;
}
public String getDateTime() {
return DateTime;
}
public void setDateTime(String dateTime) {
DateTime = dateTime;
}
}
}
在这种情况下 如果“start”大于“end”,它将交换两个参数:
所以答案只会&gt;
,在第二种情况下
var str = "\">2\""
var res = str.substring(2,1);
从位置2开始提取,并提取其余字符串:
所以答案 2“
此链接可以帮助您获取更多信息javascript substring function
答案 2 :(得分:0)
substring(2,1)只为你提供第二个位置的字符, where substring(2)返回从第2个位置到字符串结尾的字符串。