两者有什么区别
alert("abc".substr(0,2));
and
alert("abc".substring(0,2));
它们似乎都输出“ab”。
两者有什么区别
alert("abc".substr(0,2));
and
alert("abc".substring(0,2));
它们似乎都输出“ab”。
当前回答
主要的区别在于
Substr()允许您指定要返回的最大长度 substring()允许你指定索引,第二个参数不包括在内
substr()和substring()之间还有一些额外的微妙之处,比如相等参数和负参数的处理。还要注意substring()和slice()是相似的,但并不总是相同的。
//*** length vs indices:
"string".substring(2,4); // "ri" (start, end) indices / second value is NOT inclusive
"string".substr(2,4); // "ring" (start, length) length is the maximum length to return
"string".slice(2,4); // "ri" (start, end) indices / second value is NOT inclusive
//*** watch out for substring swap:
"string".substring(3,2); // "r" (swaps the larger and the smaller number)
"string".substr(3,2); // "in"
"string".slice(3,2); // "" (just returns "")
//*** negative second argument:
"string".substring(2,-4); // "st" (converts negative numbers to 0, then swaps first and second position)
"string".substr(2,-4); // ""
"string".slice(2,-4); // ""
//*** negative first argument:
"string".substring(-3); // "string"
"string".substr(-3); // "ing" (read from end of string)
"string".slice(-3); // "ing"
其他回答
子弦(startIndex, endIndex(未包括)
substr(startIndex,多少个字符)
const string = 'JavaScript';
console.log('substring(1,2)', string.substring(1,2)); // a
console.log('substr(1,2)', string.substr(1,2)); // av
let str = "Hello World"
console.log(str.substring(1, 3)) // el -> Excludes the last index
console.log(str.substr(1, 3)) // ell -> Includes the last index
最大的区别是,substr()是一个仍然可以使用的已弃用方法,但应该谨慎使用,因为它们预计在未来的某个时候将被完全删除。您应该努力从代码中删除它们的使用。substring()方法成功并指定了前者。
区别在于第二个论点。substring的第二个参数是要停止的索引(但不包括),而substr的第二个参数是要返回的最大长度。
链接?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring
substring (): 它有两个参数“start”和“end”。
开始参数是必需的,并指定开始的位置 提取。 结束参数为可选参数,用于指定 撤离应该结束。
如果没有指定end参数,则提取从开始位置到字符串结束的所有字符。
var str = "子字符串示例"; Var result = str.substring(0,10); 警报(结果); 输出:子字符串
如果start参数的值大于end参数的值,该方法将交换两个参数。这意味着start将被用作end, end将被用作start。
var str = "子字符串示例"; Var result = str.substring(10,0); 警报(结果); 输出:子字符串
substr():它有两个参数“start”和“count”。
开始参数是必需的,并指定开始的位置 提取。 Count参数是可选的,用于指定要处理的字符数 提取。
var str = "Substr示例"; Var result = str.substr(0,10); 警报(结果); 输出:Substr Exa
如果没有指定count参数,将提取从开始位置到字符串结束的所有字符。如果count为0或负数,则返回空字符串。
var str = "Substr示例"; Var result = str.substr(11); 警报(结果); 输出:ple