substrとsubstring関数の違いは何ですか?

substrとsubstring関数は両方とも文字列を切り取るための方法ですが、両者には次の違いがあります:

  1. 引数が違います:substr関数は2つの引数を受け取りますが、最初の引数は開始位置であり、2番目の引数は切り取る文字数です。一方、substring関数は2つの引数を受け取りますが、最初の引数は開始位置であり、2番目の引数は最終位置(最終位置の文字は含まれません)。
  2. 負数の処理は異なります。substr関数の最初のパラメータが負の場合、「文字列の末尾から計算して始まる位置を示します」。一方、substring関数のパラメータが負の場合、自動的に0に変換されます。
  3. substr関数の第二引数が文字列の長さを超える場合、文字列の末尾まで切り取られます。substring関数の第二引数が文字列の長さを超える場合、自動的に文字列の長さに変換されます。
  4. substr関数は、指定した開始位置から特定の長さの部分文字列を返します。一方、substring関数は、開始位置から終了位置までの部分文字列を返します。

例:

var str = "Hello World!";

console.log(str.substr(0, 5)); // 输出 "Hello"
console.log(str.substring(0, 5)); // 输出 "Hello"

console.log(str.substr(6, 5)); // 输出 "World"
console.log(str.substring(6, 11)); // 输出 "World"

console.log(str.substr(-6)); // 输出 "World!"
console.log(str.substring(-6)); // 输出 "Hello World!"

console.log(str.substr(0, 20)); // 输出 "Hello World!"
console.log(str.substring(0, 20)); // 输出 "Hello World!"

要总结一下,substr函数比较灵活,可以通过指定起始位置和字符数来截取字符串。另一方面,substring函数比较直观,可以通过指定起始位置和结束位置来截取字符串。

bannerAds