C#中的Substring接收两个参数,第一个就是要截取的字符串的开始索引,第二个参数是要截取的长度,这个方法要注意一点,这个方法截取的字符串是包括开始索引对应的字符串的。
例子:
string s = "Test AB 你好:CDEFGHIJKLMNOPQRST";
s=s.Substring(1,s.IndexOf("t"));
返回的结果是 "est",没错,开始索引指定的是 1,那就找索引为1 的字符,就是e,指定的长度是字符t的长度,默认匹配第一个出现的字符的所以,t的索引为3,故截取长度为3.
s.Substring(s.IndexOf("t"),s.IndexOf("C"));//返回结果是"t AB 你好:CDE"
s.Substring(s.IndexOf("t"),10);//返回结果是"t AB 你好:CD"
Javascript中的substring,接收两个参数,第一个参数是要截取字段的开始索引,第二个参数是要截取字符的索引(看好,这里的不是长度,而是索引),这个方法也是包括开始索引对应的字符的,但是结束的字段则是 结束索引减1位置的字符。
例子:
var s="Test AB 你好:CDEFGHIJKLMNOPQRST";
s=s.substring(1,3);//返回结果是"es",因为第二个参数是终止截取的索引,指定的是3,是不包括这个位置的,所以就是 1-2的位置 也就是 es
s=s.substring(0,3);//返回结果是"Tes"
s=s.substring(s.indexOf("t") + 2, s.indexOf("你好") - 1);//返回结果是 "AB"
Javascript中的substr,其实这个用法和C#中的用法一摸一样,也是接收两个参数,一个是开始的索引,一个是截取的长度,具体做法不在介绍。
以上那么多主要说明一点,在C#和在javascript中的截取开始索引对应的字符都会包含在结果字符中的,而javascript中的substring第二个参数是结束的索引,
也就是说返回的字符是这个索引减1的位置。