หน้าเว็บ

วันศุกร์ที่ 12 พฤศจิกายน พ.ศ. 2553

ลบอักขระเว้นวรรคหลาย ๆ ตัวที่อยู่ติดกันให้เหลือเว้นวรรคเดียว/Trim all white space in string to single

อักษรเว้นวรรค(space bar/white space) ที่อยู่ติดกันหลาย ๆ ตัวที่บางที user คีย์เข้ามาใส่ในโปรแกรมหรือฐานข้อมูล พอจะเอามาแสดงผลมันจะกลายเป็นช่องว่างไม่สวยงาม ซึ่งหลาย ๆ คนคงคิดถึงเจ้าฟังก์ชั่นที่ชื่อ Trim แต่ฟังก์ชั่นนี้สามารถตัดอักขระที่อยู่ด้านหน้าและด้านหลังของข้อความเท่านั้น ส่วนอักขระเว้นวรรคที่อยู่ตรงกลางข้อความจะไม่มีผลอะไร ซึ่งหากเราหันไปใช้ฟังก์ชั่่น Remove หรือ Replace ก็อาจจะไม่สะดวกเพราะไม่ทราบจำนวนอักขระเว้นวรรคที่แน่นอนได้

แต่ยังมี class ที่น่าสนใจอีกตัวหนึ่งคือ RegEx ที่มีฟังก์ชั่น Replace ที่แก้ปัญหานี้ได้ มีรูปแบบการใช้งานคือ

c#

    public static string TrimSpace(string text)
    {
        return Regex.Replace(text, @"\s+", " ");
    }




vb

    Public Shared Function TrimSpace(ByVal text As String) As String
        Return Regex.Replace(text, "\s+", " ")
    End Function




เพียงเท่านี้ชีวิตเราก็จะง่ายขึ้นไปอีกนิดนึงแล้ว