JavaScript 的参数不像 C# 那么死板,它可以超范围且不出错。
substr 第一个参数如果是负数,则表示从右边开始数。
substring 第一个参数如果是负数,则等效于 0。
substr、substring 第二个参数超范围时,自动截断,而 C# 则会报异常。
var s = "123456"; // substr 第一个参数如果为负数 // 则表示从右边数过来的位置,比如 -1 表示最右边那个位置 console.log(s.substr(0,2)); // 12 console.log(s.substr(-6,2)); // 12 // substr 第二个参数表示个数,越界自动截断 console.log(s.substr(4,2)); // 56 console.log(s.substr(4,20)); // 56 // substring 第一个参数如果是负数,等效于 0 console.log(s.substring(2,3)); // 3 console.log(s.substring(-2,3)); // 123 // substring 第二个参数表示结束位置(不含),越界自动截断 console.log(s.substring(0,3)); // 123 console.log(s.substring(-2,20)); // 123456