วิธีที่ชาญฉลาดในการตัดทอนสตริงที่ยาว


187

ใครบ้างมีโซลูชัน / ไลบรารีที่ซับซ้อนยิ่งขึ้นสำหรับตัดทอนสตริงด้วย JavaScript และวางจุดไข่ปลาไว้ท้ายกว่าแบบที่เห็นได้ชัด:

if (string.length > 25) {
  string = string.substring(0, 24) + "...";
}

5
คุณหมายถึงอะไร "ที่ซับซ้อนกว่านี้"? ฟังก์ชั่นที่คำนึงถึงขอบเขตของคำศัพท์เป็นอย่างไร?
Residuum

2
และไม่ตัดทอนกลางแท็ก HTML
Sz.

คำตอบ:


366

เป็นหลักคุณตรวจสอบความยาวของสตริงที่กำหนด หากยาวเกินความยาวที่กำหนดให้nตัดให้ยาวn( substrหรือslice) และเพิ่มเอนทิตี html …(... ) ลงในสตริงที่ถูกตัด

วิธีการดังกล่าวดูเหมือนว่า

function truncate(str, n){
  return (str.length > n) ? str.substr(0, n-1) + '…' : str;
};

หาก 'ซับซ้อนยิ่งขึ้น' คุณหมายถึงการตัดทอนที่ขอบเขตคำสุดท้ายของสตริงดังนั้นคุณต้องมีการตรวจสอบพิเศษ ก่อนอื่นให้คุณตัดสตริงตามความยาวที่ต้องการจากนั้นให้คุณตัดผลลัพธ์ที่ได้ตามขอบเขตของคำสุดท้าย

function truncate( str, n, useWordBoundary ){
  if (str.length <= n) { return str; }
  const subString = str.substr(0, n-1); // the original check
  return (useWordBoundary 
    ? subString.substr(0, subString.lastIndexOf(" ")) 
    : subString) + "&hellip;";
};

คุณสามารถขยายStringต้นแบบดั้งเดิมด้วยฟังก์ชันของคุณ ในกรณีนั้นstrควรลบพารามิเตอร์และstrภายในฟังก์ชันควรแทนที่ด้วยthis:

String.prototype.truncate = String.prototype.truncate || 
function ( n, useWordBoundary ){
  if (this.length <= n) { return this; }
  const subString = this.substr(0, n-1); // the original check
  return (useWordBoundary 
    ? subString.substr(0, subString.lastIndexOf(" ")) 
    : subString) + "&hellip;";
};

นักพัฒนาที่มีความเชื่อมากขึ้นอาจยอมแพ้คุณอย่างมากเกี่ยวกับเรื่องนั้น (" อย่าดัดแปลงวัตถุที่คุณไม่ได้เป็นเจ้าของ " ฉันไม่รังเกียจหรอก)

วิธีที่ไม่มีการขยายStringต้นแบบคือการสร้างวัตถุตัวช่วยของคุณเองซึ่งมีสตริง (ยาว) ที่คุณให้และวิธีการที่กล่าวมาก่อนหน้านี้เพื่อตัดทอนมัน นั่นคือสิ่งที่ตัวอย่างด้านล่างทำ

สุดท้ายคุณสามารถใช้ css เพื่อตัดทอนสตริงที่ยาวในโหนด HTML เท่านั้น มันช่วยให้คุณควบคุมน้อยลง แต่อาจเป็นทางออกที่ดี


5
ควรพิจารณาว่ามีขีด จำกัด "ยาก" และ "อ่อน" เช่นถ้าสตริงยาวกว่า 500 ตัวอักษรตัดให้เหลือ 400 ซึ่งอาจมีประโยชน์เมื่อผู้ใช้ต้องการเห็นข้อความทั้งหมดและคลิกลิงก์บางลิงก์ สำหรับมัน. หากคุณโหลดมากกว่า 1 หรือ 2 ตัวอักษรมันจะดูน่าเกลียดจริงๆ
Maxim Sloyko

2
พารามิเตอร์ตัวที่สองsubstrคือความยาวดังนั้นควรsubstr(0,n)แทนที่จะ จำกัด ไว้ที่nตัวอักษรตัวแรก
JohnnyHK

10
อย่าดัดแปลงวัตถุที่คุณไม่ได้เป็นเจ้าของ nczonline.net/blog/2010/03/02/…
Charlie Kilian

5
สิ่งหนึ่งที่คุณอาจพิจารณาคือการแทนที่&hellip;ด้วยจุดไข่ปลาที่แท้จริง ( ...) ในตัวอย่างโค้ดของคุณ หากคุณพยายามใช้สิ่งนี้ในการโต้ตอบกับ API คุณจะต้องมีเอนทิตีที่ไม่ใช่ HTML
AlbertEngelB

1
@RuneJeppesen คุณพูดถูก ปรับวิธีการ เพื่อป้องกันของฉัน: คำตอบวันที่ 7 ปีหลัง;)
KooiInc

62

โปรดทราบว่าสิ่งนี้จะต้องทำสำหรับ Firefox เท่านั้น

เบราว์เซอร์อื่น ๆทั้งหมดสนับสนุนโซลูชัน CSS (ดูตารางสนับสนุน ):

p {
    white-space: nowrap;
    width: 100%;                   /* IE6 needs any width */
    overflow: hidden;              /* "overflow" value must be different from  visible"*/ 
    -o-text-overflow: ellipsis;    /* Opera < 11*/
    text-overflow:    ellipsis;    /* IE, Safari (WebKit), Opera >= 11, FF > 6 */
}

ประชดคือฉันได้รับรหัสนั้นจาก Mozilla MDC


1
mattsnider.com/css/css-string-truncation-with-ellipsisเพื่อให้ทำงานกับ FF ได้เช่นกัน
Neal

ว้าวนี่เป็นโซลูชั่นที่สมบูรณ์แบบสำหรับมือถือ Safari ขอบคุณ!
samvermette

9
วิธี CSS ที่ดีมาก อาจมีข้อความที่ใช้งานได้กับข้อความบรรทัดเดียวเท่านั้น (ตามที่ตั้งใจwhite-space: nowrap;) เมื่อพูดถึงมากกว่าหนึ่งบรรทัดคุณจะติดกับ JavaScript
insertusernamehere

นอกจากนี้ยังใช้งานได้กับองค์ประกอบทั้งหมดเท่านั้น หากคุณต้องการเป็นส่วนหนึ่งของสตริงตัดโดยไม่ต้องตัดบิตที่คุณต้องการที่จะตัดในช่วงหรือองค์ประกอบ HTML อื่น ๆ นี้จะไม่ทำงานเช่น:Your picture ('some very long picture filename truncated...') has been uploaded.
คริส

1
OP ขอวิธีแก้ปัญหาจาวาสคริปต์เป็นพิเศษ
vsync

25

มีเหตุผลที่ถูกต้องที่ผู้คนอาจต้องการทำสิ่งนี้ใน JavaScript แทน CSS

วิธีตัดให้เหลือ 8 อักขระ (รวมถึงจุดไข่ปลา) ใน JavaScript:

short = long.replace(/(.{7})..+/, "$1&hellip;");

หรือ

short = long.replace(/(.{7})..+/, "$1…");

1
หากคุณนับจุดไข่ปลานี่จะเป็น 9 ตัวอักษร หากคุณต้องการให้เป็น 8 หลังจากการตัดให้ใช้.replace(/^(.{7}).{2,}/, "$1…");แทน
Okku

longและshortสงวนไว้เป็นคำหลักในอนาคตด้วยข้อกำหนด ECMAScript ที่เก่ากว่า (ECMAScript 1 ถึง 3) ดูMDN: คำหลักที่สงวนไว้ในอนาคตในมาตรฐานที่เก่ากว่า
Ricardo


9
('long text to be truncated').replace(/(.{250})..+/, "$1…");

อย่างใดรหัสข้างต้นไม่ทำงานสำหรับคัดลอกวางหรือเขียนข้อความบางชนิดในแอป vuejs ดังนั้นฉันจึงใช้lodash ตัดทอนและมันก็ใช้ได้ดี

_.truncate('long text to be truncated', { 'length': 250, 'separator': ' '});

คำตอบที่ทันสมัยดี!
ykonda

ฉันอยากรู้ว่าข้อความนี้คืออะไร มันใช้อักขระที่ไม่ใช่ละตินหรือไม่
Adam Leggett

มันเป็นเพียง Lorem ipsum
Afraz Ahmad

7

นี่คือโซลูชันของฉันซึ่งมีการปรับปรุงเล็กน้อยสำหรับข้อเสนอแนะอื่น ๆ :

String.prototype.truncate = function(){
    var re = this.match(/^.{0,25}[\S]*/);
    var l = re[0].length;
    var re = re[0].replace(/\s$/,'');
    if(l < this.length)
        re = re + "&hellip;";
    return re;
}

// "This is a short string".truncate();
"This is a short string"

// "Thisstringismuchlongerthan25characters".truncate();
"Thisstringismuchlongerthan25characters"

// "This string is much longer than 25 characters and has spaces".truncate();
"This string is much longer&hellip;"

มัน:

  • ตัดทอนในช่องว่างแรกหลังจาก 25 อักขระ
  • ขยายวัตถุสตริง JavaScript เพื่อให้สามารถใช้กับ (และถูกผูกมัดเพื่อ) สตริงใด ๆ
  • จะตัดแต่งสตริงหากการตัดปลายส่งผลให้มีช่องว่างต่อท้าย
  • จะเพิ่มเอนทิตี Hellip ของ Unicode (จุดไข่ปลา) หากสตริงที่ถูกตัดทอนมีความยาวเกิน 25 อักขระ

7

ฟังก์ชั่นที่ดีที่สุดที่ฉันได้พบ เครดิตข้อความจุดไข่ปลา

function textEllipsis(str, maxLength, { side = "end", ellipsis = "..." } = {}) {
  if (str.length > maxLength) {
    switch (side) {
      case "start":
        return ellipsis + str.slice(-(maxLength - ellipsis.length));
      case "end":
      default:
        return str.slice(0, maxLength - ellipsis.length) + ellipsis;
    }
  }
  return str;
}

ตัวอย่าง :

var short = textEllipsis('a very long text', 10);
console.log(short);
// "a very ..."

var short = textEllipsis('a very long text', 10, { side: 'start' });
console.log(short);
// "...ng text"

var short = textEllipsis('a very long text', 10, { textEllipsis: ' END' });
console.log(short);
// "a very END"

5

ขณะนี้เบราว์เซอร์สมัยใหม่ทั้งหมดสนับสนุนโซลูชัน CSS อย่างง่ายสำหรับการเพิ่มจุดไข่ปลาโดยอัตโนมัติหากบรรทัดข้อความเกินความกว้างที่มี:

p {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

(โปรดทราบว่าสิ่งนี้ต้องการความกว้างขององค์ประกอบที่ จำกัด ในบางวิธีเพื่อให้มีผลกระทบใด ๆ )

ขึ้นอยู่กับhttps://css-tricks.com/snippets/css/truncate-string-with-ellipsis/

ควรสังเกตว่าวิธีนี้ไม่จำกัด ตามจำนวนอักขระ นอกจากนี้ยังไม่ทำงานหากคุณต้องการอนุญาตให้มีข้อความหลายบรรทัด


2
สิ่งนี้มีประโยชน์สำหรับประโยคบรรทัดเดียวเท่านั้นมันไม่มีทาง (เท่าที่ฉันรู้) ในการทำตัวอย่างหลายบรรทัดผ่าน CSS
Hooman Askari

มีวิธีใดบ้างไหมที่จะทำสิ่งนี้ให้ทำเครื่องหมายจุดไข่ปลาทางซ้ายแทนขวา?
GreenAsJade

1
@GreenAsJade ผมเชื่อว่าคุณสามารถประสบความสำเร็จว่าด้วยการใช้และtext-direction: rtl text-align: leftดูdavidwalsh.name/css-ellipsis-left
Sean the Bean

4

เฟรมเวิร์ก Javascript ที่ทันสมัยที่สุด ( JQuery , Prototype , ฯลฯ ... ) มีฟังก์ชั่นยูทิลิตี้ที่ตรึงอยู่กับ String ที่จัดการสิ่งนี้

นี่คือตัวอย่างใน Prototype:

'Some random text'.truncate(10);
// -> 'Some ra...'

ดูเหมือนว่าหนึ่งในฟังก์ชั่นที่คุณต้องการให้คนอื่นจัดการ / ดูแลรักษา ฉันปล่อยให้เฟรมเวิร์กจัดการแทนการเขียนโค้ดเพิ่มเติม


8
ฉันไม่คิดว่า jQuery มีอะไรสำหรับเรื่องนี้
alex

2
Underscore.js ทำ - _ ('Hello world'). ตัดทอน (5) => 'Hello ... ' _ ('Hello'). ตัดทอน (10) => 'Hello'
JayCrossler

3
เพียวเน้นไม่ได้ดูเหมือนจะมีtruncate()ทั้ง - คุณอาจจำเป็นต้องขยายเช่นunderscore.string
martin

2
นี่คือคำตอบที่ถูกต้องโดยสิ้นเชิง ฉันไม่รู้เกี่ยวกับขีดล่าง แต่ lodash มีตัวเลือก_.truncนี้
leftclickben

2
ฉันคิดว่าคำตอบที่ถูกต้องคือการใช้ lodash.trunc หรือ underscore.string.truncate
ooolala

2

บางทีฉันอาจพลาดตัวอย่างที่มีคนจัดการโมฆะ แต่ 3 คำตอบท็อปไม่ทำงานสำหรับฉันเมื่อฉันมีโมฆะ (แน่ใจว่าฉันรู้ว่าการจัดการข้อผิดพลาดและอื่น ๆ อีกนับล้านไม่ใช่ความรับผิดชอบของบุคคลที่ตอบคำถาม แต่เนื่องจาก ฉันใช้ฟังก์ชั่นที่มีอยู่แล้วพร้อมกับคำตอบที่ยอดเยี่ยมอย่างหนึ่งของการตัดคำไข่ที่ฉันคิดว่าฉันจะให้มันแก่ผู้อื่น

เช่น

javascript:

news.comments

ใช้ฟังก์ชั่นการตัด

news.comments.trunc(20, true);

อย่างไรก็ตามใน news.comments เป็นโมฆะ สิ่งนี้จะ "หยุด"

สุดท้าย

checkNull(news.comments).trunc(20, true) 

ฟังก์ชั่นการตัดทอนมารยาทของKooiInc

String.prototype.trunc =
 function (n, useWordBoundary) {
     console.log(this);
     var isTooLong = this.length > n,
         s_ = isTooLong ? this.substr(0, n - 1) : this;
     s_ = (useWordBoundary && isTooLong) ? s_.substr(0, s_.lastIndexOf(' ')) : s_;
     return isTooLong ? s_ + '&hellip;' : s_;
 };

ตัวตรวจสอบ null แบบง่ายของฉัน (ตรวจสอบสิ่ง "null" ตามตัวอักษรเช่นกัน (สิ่งนี้จับไม่ได้กำหนด "", null, "null" ฯลฯ )

  function checkNull(val) {
      if (val) {
          if (val === "null") {
              return "";
          } else {
              return val;
          }
      } else {
          return "";
      }
  }

นี่คือรุ่นที่ได้รับการแก้ไข - หลีกเลี่ยงการใช้เครื่องต้นแบบรวมการตรวจสอบ null ในฟังก์ชันและมีการทดสอบ / สาธิตการใช้งาน codepen.io/mahemoff/pen/LGEdzy
mahemoff

คุณคิดว่าต้นแบบมีปัญหาหรือไม่ เพียงแค่อยากรู้อยากเห็น
Tom Stickel

เหตุผลของฟังก์ชั่นการตรวจสอบโมฆะแยกกันคือมันจะตรวจสอบจริง, โมฆะ, ไม่ได้กำหนด, NaN, สตริงว่าง (""), 0, เท็จและ "โมฆะ" แต่โดยรวมแล้วฉันชอบ fx ของคุณ
Tom Stickel

1
ใช่มันเป็นเรื่องของความคิดเห็นและบริบทการใช้งาน แต่ต้นแบบจะน่าเกลียดเมื่อคุณทำงานกับห้องสมุดอื่น ๆ เพราะพวกเขาอาจแทนที่สิ่งเดียวกัน (หรือในบางกรณีที่หายากอาจใช้ฟังก์ชั่นที่มีชื่อเดียวกันในภายหลังเป็นคุณสมบัติภาษามาตรฐาน)
mahemoff

ใช่ฉันเห็นด้วยกับคุณ
Tom Stickel

2

บางครั้งชื่อไฟล์จะมีหมายเลขซึ่งดัชนีอาจอยู่ที่จุดเริ่มต้นหรือจุดสิ้นสุด ดังนั้นฉันจึงต้องการให้สั้นลงจากจุดศูนย์กลางของสตริง:

function stringTruncateFromCenter(str, maxLength) {
    const midChar = "…";      // character to insert into the center of the result
    var left, right;

    if (str.length <= maxLength) return str;

    // length of beginning part      
    left = Math.ceil(maxLength / 2);

    // start index of ending part   
    right = str.length - Math.floor(maxLength / 2) + 1;   

    return str.substr(0, left) + midChar + str.substring(right);
}

ระวังว่าฉันใช้อักขระเติมที่นี่มีมากกว่า 1 ไบต์ใน UTF-8



1

ฉันยกระดับโซลูชันของ Kooilnc ทางออกกะทัดรัดดีจริง ๆ มีกล่องเล็ก ๆ ที่ฉันอยากจะพูดถึง หากมีคนเข้าสู่ลำดับอักขระที่ยาวมาก ๆ ไม่ว่าด้วยเหตุผลใดมันจะไม่ถูกตัดทอน:

function truncate(str, n, useWordBoundary) {
    var singular, tooLong = str.length > n;
    useWordBoundary = useWordBoundary || true;

    // Edge case where someone enters a ridiculously long string.
    str = tooLong ? str.substr(0, n-1) : str;

    singular = (str.search(/\s/) === -1) ? true : false;
    if(!singular) {
      str = useWordBoundary && tooLong ? str.substr(0, str.lastIndexOf(' ')) : str;
    }

    return  tooLong ? str + '&hellip;' : str;
}

1

ด้วย Googling ที่รวดเร็วฉันพบสิ่งนี้ ... มันเหมาะกับคุณไหม?

/**
 * Truncate a string to the given length, breaking at word boundaries and adding an elipsis
 * @param string str String to be truncated
 * @param integer limit Max length of the string
 * @return string
 */
var truncate = function (str, limit) {
    var bits, i;
    if (STR !== typeof str) {
        return '';
    }
    bits = str.split('');
    if (bits.length > limit) {
        for (i = bits.length - 1; i > -1; --i) {
            if (i > limit) {
                bits.length = i;
            }
            else if (' ' === bits[i]) {
                bits.length = i;
                break;
            }
        }
        bits.push('...');
    }
    return bits.join('');
};
// END: truncate

1

Text-overflow: จุดไข่ปลาเป็นคุณสมบัติที่คุณต้องการ ด้วยสิ่งนี้และสิ่งที่ล้น: ซ่อนอยู่กับความกว้างที่เฉพาะเจาะจงทุกอย่างที่เหนือกว่าซึ่งจะได้ผลสามช่วงเวลาในตอนท้าย ... อย่าลืมเพิ่มช่องว่าง: ตอนนี้rapหรือข้อความจะใส่หลายบรรทัด

.wrap{
  text-overflow: ellipsis
  white-space: nowrap;
  overflow: hidden;
  width:"your desired width";
}
<p class="wrap">The string to be cut</p>

1
ความกะทัดรัดเป็นเรื่องที่ยอมรับได้ แต่คำอธิบายที่ดีกว่าจะดีกว่า
Armali

mwilcoxและSean the Beanได้โพสต์โซลูชันนี้แล้ว
Andrew Myers

1
สามารถใช้สำหรับข้อความบรรทัดเดียวเท่านั้น
Vally Pepyako

ข้อความล้น: จุดไข่ปลาที่สมบูรณ์แบบ !!
zardilior

0

คำตอบของ c_harm อยู่ในความคิดของฉันที่ดีที่สุด โปรดทราบว่าหากคุณต้องการใช้

"My string".truncate(n)

คุณจะต้องใช้ตัวสร้างวัตถุ regexp แทนที่จะเป็นตัวอักษร นอกจากนี้คุณจะต้องหลบหนี\Sเมื่อแปลง

String.prototype.truncate =
    function(n){
        var p  = new RegExp("^.{0," + n + "}[\\S]*", 'g');
        var re = this.match(p);
        var l  = re[0].length;
        var re = re[0].replace(/\s$/,'');

        if (l < this.length) return re + '&hellip;';
    };

ทุกคนได้ยินความคิดเห็นและการตั้งชื่อตัวแปรที่เหมาะสมหรือไม่
จักรยาน

@ จักรยานรหัสถูกคัดลอกและแก้ไขจากคำตอบอื่นข้างต้นไม่จำเป็นต้องหยาบคายและหยาบคาย
Matt Fletcher

0

ใช้รหัสต่อไปนี้

 function trancateTitle (title) {
    var length = 10;
    if (title.length > length) {
       title = title.substring(0, length)+'...';
    }
    return title;
}

0

การแก้ปัญหาของ Kooilnc:

String.prototype.trunc = String.prototype.trunc ||
  function(n){
      return this.length>n ? this.substr(0,n-1)+'&hellip;' : this.toString();
  };

ส่งคืนค่าสตริงแทนอ็อบเจกต์ String หากไม่จำเป็นต้องถูกตัดทอน


สิ่งนี้ไม่ได้ให้คำตอบสำหรับคำถาม จะวิจารณ์หรือการร้องขอคำชี้แจงจากผู้เขียนแสดงความคิดเห็นด้านล่างโพสต์ของพวกเขา - คุณสามารถแสดงความคิดเห็นในโพสต์ของคุณเองและเมื่อคุณมีเพียงพอชื่อเสียงคุณจะสามารถที่จะแสดงความคิดเห็นในโพสต์ใด
Spencer Wieczorek

อ่าฉันเห็นความแตกต่างแล้ว ขอบคุณสำหรับการอ้างอิง ฉันต้องการแสดงความคิดเห็นด้วยความหวังว่า @ Kooilnc จะเห็นมันและอาจแก้ไขคำตอบที่ยอมรับถ้าเขาหรือเธอเห็นด้วย แต่ไม่มีชื่อเสียง
qwales1

0

ฉันเพิ่งจะทำเช่นนี้และจบลงด้วย:

/**
 * Truncate a string over a given length and add ellipsis if necessary
 * @param {string} str - string to be truncated
 * @param {integer} limit - max length of the string before truncating
 * @return {string} truncated string
 */
function truncate(str, limit) {
    return (str.length < limit) ? str : str.substring(0, limit).replace(/\w{3}$/gi, '...');
}

รู้สึกดีและสะอาดสำหรับฉัน :)


1
นั่นอาจทำให้สตริงที่เป็นผลลัพธ์ 3 ตัวอักษรยาวเกินขีด จำกัด
Hauke

0

ฉันชอบใช้ .slice () อาร์กิวเมนต์แรกคือดัชนีเริ่มต้นและที่สองคือดัชนีสิ้นสุด ทุกสิ่งในระหว่างนั้นคือสิ่งที่คุณได้รับกลับมา

var long = "hello there! Good day to ya."
// hello there! Good day to ya.

var short  = long.slice(0, 5)
// hello

0

ที่ไหนสักแห่งที่ชาญฉลาด: D

//My Huge Huge String
    let tooHugeToHandle = `It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).`
    
//Trim Max Length
 const maxValue = 50
// The barber.
 const TrimMyString = (string, maxLength, start = 0) => {
//Note - `start` is if I want to start after some point of the string
    	if (string.length > maxLength) {
    	let trimmedString = string.substr(start, maxLength)
    	 return (
    	   trimmedString.substr(
    	   start,
    	   Math.min(trimmedString.length,   trimmedString.lastIndexOf(' '))
           ) + ' ...'
         )
       }
    return string
}

console.log(TrimMyString(tooHugeToHandle, maxValue))


-1

ฟังก์ชั่นนี้ทำการเว้นวรรคและส่วนคำด้วย (ex: Mother to Moth ... )

String.prototype.truc= function (length) {
        return this.length>length ? this.substring(0, length) + '&hellip;' : this;
};

การใช้งาน:

"this is long length text".trunc(10);
"1234567890".trunc(5);

เอาท์พุท:

นี่คือ ...

12345 ...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.